我正在开发一个asp.net应用程序。当用户点击按钮时,他调用web服务,同时传递他在文本字段中输入之前的参数。当webservice没有返回任何结果时,它会显示一个弹出窗口,一切都在本地运行良好,但是当我在Windows服务器上部署我的应用程序时,弹出窗口不会显示。这是我的代码:
if (!string.IsNullOrEmpty(textbox.text))
{
try
{
//webservice call
string result = webservice.function(textbox.text);
}
catch (SoapException ex)
{
string message = ex.Message;
//this popup is not working on the deployed application
Page.ClientScript.RegisterClientScriptBlock(GetType(), "error from code behind", string.Format("alert('{0}')", message), true);
}
}
如果我从客户端运行我的应用程序以查看正在发生的事情,我就是这样:
当我运行localhost时,一切正常,播放来自soapexception的弹出窗口,显示此消息' [E_E1] [Parameter NotFound]'
当我运行服务器应用程序时,我在chrome控制台中收到此错误:
<script type="text/javascript">
//<![CDATA[
alert('System.Web.Services.Protocols.SoapException: [E_E1] [Parameter NotFound]
uncaught syntaxerror unexpected token illegal
at API.method(String refHubsite) in d:\users\documents\visual studio 2010\Projects\test\Code\API.cs:line 59
at test.service.ethod(String sc) in d:\users\documents\visual studio 2010\Projects\test\Service.asmx.cs:line 20')//]]>
</script>
对于相同的代码,字符串消息具有不同的值,无论它是从sohostxception从localhost还是从webserver生成的:
localhost:string message =&#34; [E_E1] [Parameter NotFound]&#34;
服务器窗口:字符串消息=&#34; System.Web.Services.Protocols.SoapException:[E_E1] [参数NotFound] ........&#34;,它似乎包含完整的堆栈而不是localhost消息值。
提前感谢您的帮助