You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
330 lines
8.8 KiB
330 lines
8.8 KiB
<%@ Page Language='C#' Inherits='UDDI.Web.UddiPage' %>
|
|
<%@ Register TagPrefix='uddi' Namespace='UDDI.Web' Assembly='uddi.web' %>
|
|
<%@ Register Tagprefix='uddi' Tagname='Header' Src='controls/header.ascx' %>
|
|
<%@ Register Tagprefix='uddi' Tagname='Footer' Src='controls/footer.ascx' %>
|
|
<%@ Register Tagprefix='uddi' Tagname='BreadCrumb' Src='controls/breadcrumb.ascx' %>
|
|
<%@ Import Namespace='System.Data.SqlClient' %>
|
|
<%@ Import Namespace='UDDI' %>
|
|
|
|
<script language='C#' runat='server'>
|
|
protected bool allowRetry = false;
|
|
protected bool frames;
|
|
protected string root;
|
|
|
|
void Page_Init( object source, EventArgs eventArgs )
|
|
{
|
|
|
|
try
|
|
{
|
|
frames = ( "true" == Request[ "frames" ] );
|
|
|
|
root = ( "/" == Request.ApplicationPath ) ? "" : Request.ApplicationPath;
|
|
|
|
|
|
string html = "";
|
|
|
|
//
|
|
// Grab the exception from the current context, then clear
|
|
// the error so ASP.NET won't try to throw it's own error
|
|
// page.
|
|
//
|
|
Exception e = (Exception)Session[ "exception" ];
|
|
|
|
if( null == e )
|
|
{
|
|
e = new UDDIException(
|
|
ErrorType.E_fatalError,
|
|
"UDDI_ERROR_FATALERROR_UNKNOWN" );
|
|
}
|
|
else if( null != e.InnerException )
|
|
{
|
|
if( e.InnerException is SqlException && ((SqlException)e.InnerException).Number >= 50000 )
|
|
{
|
|
SqlException se = (SqlException)e.InnerException;
|
|
|
|
e = new UDDIException(
|
|
(ErrorType)( se.Number - 50000 ),
|
|
"UDDI_ERROR_SQL_EXCEPTION",
|
|
se.Message
|
|
);
|
|
}
|
|
else if( e.InnerException is UDDIException )
|
|
e = e.InnerException;
|
|
}
|
|
|
|
//
|
|
// Determine whether we should be showing the stack.
|
|
// SECURITY: Should we be doing a Debug.VerifySetting on Debug.StackTrace?
|
|
//
|
|
bool showStack = false;
|
|
|
|
try
|
|
{
|
|
if( 1 == Config.GetInt( "Debug.StackTrace", UDDI.Constants.Debug.StackTrace ) )
|
|
showStack = true;
|
|
}
|
|
catch( Exception )
|
|
{
|
|
}
|
|
|
|
//
|
|
// Try to provide more detailed information on the source of the
|
|
// exception. If we don't know the exception type, we'll simply
|
|
// output the exception message.
|
|
//
|
|
if( e is UDDIException )
|
|
{
|
|
UDDIException ue = (UDDIException)e;
|
|
|
|
html +=
|
|
"<b>" +
|
|
String.Format(
|
|
Localization.GetString( "TAG_ERROR" ),
|
|
"</b>" + ue.Number.ToString() + " (" + (int)ue.Number + ")<b>" ) +
|
|
"</b><br><br>" ;
|
|
|
|
breadcrumb.AddBlurb( ue.Number.ToString() + " (" + (int)ue.Number + ")", null, null, null, false );
|
|
|
|
|
|
switch( ue.Number )
|
|
{
|
|
case ErrorType.E_accountLimitExceeded:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_ACCOUNT_LIMIT_EXCEEDED" ) + "</p>";
|
|
break;
|
|
|
|
case ErrorType.E_busy:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_BUSY" ) + "</p>";
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_CONTACT_SYSTEM_ADMINISTRATOR" ) + "</p>";
|
|
|
|
allowRetry = true;
|
|
break;
|
|
|
|
case ErrorType.E_categorizationNotAllowed:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_CATEGORIZATION_NOT_ALLOWED" ) + "</p>";
|
|
break;
|
|
|
|
case ErrorType.E_fatalError:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_FATAL_ERROR" ) + "</p>";
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_CONTACT_SYSTEM_ADMINISTRATOR" ) + "</p>";
|
|
|
|
allowRetry = true;
|
|
break;
|
|
|
|
case ErrorType.E_invalidKeyPassed:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_INVALID_KEY_PASSED" ) + "</p>";
|
|
break;
|
|
|
|
case ErrorType.E_invalidCategory:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_INVALID_CATEGORY" ) + "</p>";
|
|
break;
|
|
|
|
case ErrorType.E_keyRetired:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_KEY_RETIRED" ) + "</p>";
|
|
break;
|
|
|
|
case ErrorType.E_languageError:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_LANGUAGE_ERROR" ) + "</p>";
|
|
break;
|
|
|
|
case ErrorType.E_nameTooLong:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_NAME_TOO_LONG" ) + "</p>";
|
|
break;
|
|
|
|
case ErrorType.E_operatorMismatch:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_OPERATOR_MISMATCH" ) + "</p>";
|
|
break;
|
|
|
|
case ErrorType.E_userMismatch:
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_USER_MISMATCH" ) + "</p>";
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else if( null != e )
|
|
{
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_FATAL_ERROR" ) + "</p>";
|
|
html += "<p style='width: 400px'>" + Localization.GetString( "ERROR_CONTACT_SYSTEM_ADMINISTRATOR" ) + "</p>";
|
|
}
|
|
|
|
//
|
|
// BUG: 2351
|
|
//
|
|
html += GetFormatedErrorString( e, showStack );
|
|
|
|
|
|
//
|
|
// BUG: 2351
|
|
// Removed the following code and replaced it with logic to display
|
|
// dynamicly visible error strings.
|
|
//
|
|
/*
|
|
// Display a stack trace, if requested.
|
|
//
|
|
if( null != e && showStack )
|
|
{
|
|
string trace = e.ToString();
|
|
|
|
trace = trace.Replace( "\r\n", "<br>" );
|
|
trace = trace.Replace( " ", " " );
|
|
|
|
html += "<p><b>" + Localization.GetString( "TAG_STACK_TRACE" ) + "</b><br>" + trace + "</p>";
|
|
}
|
|
*/
|
|
|
|
errText.Text = html;
|
|
|
|
retry.Visible = allowRetry;
|
|
|
|
}
|
|
catch( Exception e )
|
|
{
|
|
errText.Text = "<p style='width: 400px'>" + Localization.GetString( "ERROR_FATAL_ERROR" ) + "</p>";
|
|
errText.Text += "<p style='width: 400px'>" + Localization.GetString( "ERROR_CONTACT_SYSTEM_ADMINISTRATOR" ) + "</p>";
|
|
}
|
|
}
|
|
|
|
private string GetFormatedErrorString( Exception e, bool showstack )
|
|
{
|
|
string s = "";
|
|
|
|
|
|
|
|
if( null != e )
|
|
{
|
|
string msg = "";
|
|
if( e is UDDIException )
|
|
msg = ( (UDDIException) e ).GetMessage( UDDITextContext.UI );
|
|
else
|
|
msg = e.Message;
|
|
|
|
s += "<p><a onclick='expandError()' style='cursor:hand;font-weight:bold;'>"+Localization.GetString( "TAB_DETAILS" )+"</a><br>";
|
|
|
|
if( showstack )
|
|
{
|
|
s += "<div id='ErrorDetails' class='boxed'><b>" + Localization.GetString( "TAG_STACK_TRACE" ) + "</b><br><span >" + e.ToString().Replace( "\n","<br>" ).Replace( " ", " " ) + "</span></div>";
|
|
}
|
|
else
|
|
{
|
|
s += "<div id='ErrorDetails' class='boxed'><span >" + msg +"</span></div>";
|
|
}
|
|
s+= "</p>";
|
|
|
|
}
|
|
return s;
|
|
}
|
|
</script>
|
|
<uddi:StyleSheetControl
|
|
Runat='server'
|
|
Default='../stylesheets/uddi.css'
|
|
Downlevel='../stylesheets/uddidl.css'
|
|
/>
|
|
<uddi:PageStyleControl
|
|
Runat='server'
|
|
OnClientContextMenu='Document_OnContextMenu()'
|
|
/>
|
|
<uddi:ClientScriptRegister
|
|
Runat='server'
|
|
Source='../client.js'
|
|
Language='javascript'
|
|
/>
|
|
<uddi:SecurityControl
|
|
Runat='server'
|
|
/>
|
|
<form enctype='multipart/form-data' Runat='server'>
|
|
<script>
|
|
function expandError( )
|
|
{
|
|
var elt = GetElementById( "ErrorDetails" );
|
|
|
|
if( document.getElementById )
|
|
{
|
|
//
|
|
// Render IE5+
|
|
//
|
|
if( elt.style.display == "none" )
|
|
elt.style.display = "block";
|
|
else
|
|
elt.style.display = "none";
|
|
}
|
|
else if( document.all )
|
|
{
|
|
//
|
|
// Render IE4
|
|
//
|
|
if( elt.style.display == "none" )
|
|
elt.style.display = "block";
|
|
else
|
|
elt.style.display = "none";
|
|
}
|
|
else if( document.layers )
|
|
{
|
|
//
|
|
// Render NS 4+
|
|
//
|
|
if( elt.style.visiblity == "hidden" )
|
|
elt.style.visiblity = "visible";
|
|
else
|
|
elt.style.visibility = "hidden";
|
|
}
|
|
else
|
|
{
|
|
//
|
|
// Unsupported Browser Type.
|
|
//
|
|
|
|
}
|
|
}
|
|
|
|
|
|
</script>
|
|
<table width='100%' border='0' height='100%' cellpadding='0' cellspacing='0' >
|
|
<asp:PlaceHolder
|
|
Id='HeaderBag'
|
|
Runat='server'
|
|
>
|
|
<tr height='95'>
|
|
<td>
|
|
<!-- Header Control Here -->
|
|
<uddi:Header
|
|
Runat='server'
|
|
/>
|
|
</td>
|
|
</tr>
|
|
</asp:PlaceHolder>
|
|
<tr height='100%' valign='top'>
|
|
<td>
|
|
<uddi:BreadCrumb
|
|
Id='breadcrumb'
|
|
Runat='server'
|
|
/>
|
|
<table cellpadding='0' cellspacing='0' width='100%' border='0' style='table-layout: fixed' class='helpBlock'>
|
|
<tr>
|
|
<td colspan='2' style='padding: 15px'>
|
|
<h1><uddi:StringResource Name='HEADING_ERROR_PROCESSING_REQUEST' Runat='server' /></h1>
|
|
<asp:Label ID='errText' CssClass='normal' Runat='server' />
|
|
<script>/*Close the error on load.*/expandError();</script>
|
|
<asp:PlaceHolder ID='retry' Runat='server'>
|
|
<!-- Removed Retry Feature. -->
|
|
</asp:PlaceHolder>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<asp:PlaceHolder
|
|
Id='FooterBag'
|
|
Runat='server'
|
|
>
|
|
<tr height='95'>
|
|
<td>
|
|
<!-- Footer Control Here -->
|
|
<uddi:Footer
|
|
Runat='server'
|
|
/>
|
|
</td>
|
|
</tr>
|
|
</asp:PlaceHolder>
|
|
</table>
|
|
</form>
|