Leaked source code of windows server 2003
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

<%@ 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( " ", "&nbsp;&nbsp;" );
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( " ", "&nbsp;&nbsp;" ) + "</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>