C# 在ASP.NET页面的加载上调用WCF方法
我希望在应用程序退出时调用WCF方法,但是,当我尝试使用以下代码运行ASP.NET应用程序时:C# 在ASP.NET页面的加载上调用WCF方法,c#,asp.net,wcf,C#,Asp.net,Wcf,我希望在应用程序退出时调用WCF方法,但是,当我尝试使用以下代码运行ASP.NET应用程序时: protected override void OnUnload(EventArgs e) { base.OnUnload(e); MaChatServer.Service1Client proxy = new MaChatServer.Service1Client(); proxy.RemoveUser(UsernameStatic); if (proxy.GetA
protected override void OnUnload(EventArgs e)
{
base.OnUnload(e);
MaChatServer.Service1Client proxy = new MaChatServer.Service1Client();
proxy.RemoveUser(UsernameStatic);
if (proxy.GetAllUsers().Count == 0)
{
proxy.ResetServer();
}
}
我看到这个错误页面:
描述:执行当前web请求期间发生未处理的异常。有关错误及其在代码中的起源的更多信息,请参阅堆栈跟踪。异常详细信息:System.ServiceModel.FaultException:由于内部错误,服务器无法处理请求。有关错误的详细信息,请在服务器上启用IncludeExceptionDetailInFaults(从ServiceBehaviorAttribute或从配置行为),以便将异常信息发送回客户端,或者根据Microsoft.NET Framework SDK文档启用跟踪,并检查服务器跟踪日志
首先,我建议您将配置添加到主机wcf服务(.config)
由于您没有确切的错误消息,因此必须将您的消息发送给您的客户您是否按照错误消息中的说明执行了操作?您是否启用了跟踪以查看实际错误?请查看,其中的共识是“不,他们不应该”!如何启用它?能否在浏览器中打开端点?服务是否正常工作?是的,只有当我添加以下内容时,它才正常工作:protected override void OnUnload(EventArgs e){base.OnUnload(e);MaChatServer.Service1Client proxy=new MaChatServer.Service1Client();proxy.RemoveUser(UsernameStatic);if(proxy.GetAllUsers().Count==0){proxy.ResetServer();}我已经这样做了,但是现在页面不起作用,但是如果我删除受保护的覆盖void OnUnload(EventArgs e){base.OnUnload(e);MaChatServer.Service1Client proxy=new MaChatServer.Service1Client();proxy.RemoveUser(UsernameStatic);if(proxy.getalUsers().Count==0){proxy.ResetServer();}},它可以工作
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="debug">
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>