4

我已经使用 Silverlight 和 WCF Ria 服务开发了一个应用程序。
该应用程序必须托管在使用 IIS 5 的 Windows XP 机器上。
由于我在网上找到的信息,我确实部署了应用程序没有任何问题。
但是现在当我的应用程序尝试执行第一个 WCF 查询时,我遇到了这个错误:

消息:查询“登录”的 Silverlight 应用程序加载操作中未处理的错误失败。[HttpWebRequest_WebException_RemoteServer] 参数:NotFound 调试资源字符串不可用。通常,关键和论据提供了足够的信息来诊断问题。请参阅 http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.10411.0&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer at System.ServiceModel.DomainServices.Client.OperationBase.Complete(Exception error) at System.ServiceModel System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationOperation.<>c_DisplayClass1.b 处的 .DomainServices.Client.ApplicationServices.AuthenticationOperation.End(IAsyncResult 结果)_0(对象状态)在 System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationOperation.HandleAsyncCompleted(IAsyncResult asyncResult) 在 System.ServiceModel.DomainServices 的 System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationOperation.RunInSynchronizationContext(SendOrPostCallback 回调,对象状态) .Client.AsyncResultBase.Complete()
在 System.ServiceModel.DomainServices.Client.ApplicationServices.WebAuthenticationService.HandleOperationComplete(OperationBase operation) 在 System.ServiceModel.DomainServices.Client.LoadOperation.<>c_ DisplayClass41.<Create>b__0(LoadOperation1 arg)在 System.ServiceModel.DomainServices.Client.LoadOperation`1.InvokeCompleteAction() 在 System.ServiceModel.DomainServices.Client.OperationBase.Complete(异常错误)在 System.ServiceModel.DomainServices.Client.LoadOperation.Complete(异常错误) 在 System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult) 在 System.ServiceModel.DomainServices.Client.DomainContext.<>c _DisplayClass1b.b__17(Object )

我该如何解决这个错误?
应用程序在 Windows 7 机器上的 IIS 7 上成功托管,并且 wcf ria 也可以工作。
更新:使用 Fiddler 后,我发现我的应用程序的错误是 404,Silverlight 找不到 Ria Services。

4

2 回答 2

0

在这种情况下,NotFound 表示服务器上的任何错误。您需要获取详细的 WCF 日志。我建议您将以下内容添加到 web.config 文件以启用 WCF 日志记录:

<configuration>
  ... your regular configuration here ...
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="All" propagateActivity="true">
        <listeners>
          <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener"
initializeData="C:\wcflogs\your_wcf_service_log.svclog"  />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
</configuration>

然后,您可以使用服务跟踪查看器工具 (SvcTraceViewer.exe) 打开 .svclog 文件并查看详细信息。

于 2013-04-15T07:50:37.033 回答
0

尝试在服务器上重新安装 RIA 服务。

我认为命令是 RiaService.msi Server=true

重新安装后,尝试直接在网络浏览器上访问您的服务。您的服务的 URL 将是http://YOURDOMAIN.COM/YourAPP/Full-NameSpace-Of-Class.svc

在命名空间中,您必须将点 (.) 更改为破折号 (-)

如果它没有返回响应,那么您必须验证 WCF 是否已安装并在 IIS 中注册。

于 2013-04-23T14:21:38.843 回答