错误404 - 在Silverlight RIA服务调用上找不到文件

时间:2011-05-24 20:35:53

标签: silverlight-4.0 wcf-ria-services

我到处搜索我的问题的解决方案,但我找不到。我已经构建了一个Silverlight 4导航应用程序,并使用RIA服务来处理自定义实体(实际上是对COM dll运行服务器端调用)。在我的调试环境中,一切正常,但是当我尝试作为网站部署到IIS7(在开发机器上)时,在实体上调用Get查询时会出现以下错误:

Load operation failed for query 'GetNewHWCoil'. The remote server returned an error: NotFound.

   at System.ServiceModel.DomainServices.Client.OperationBase.Complete(Exception error)
    at System.ServiceModel.DomainServices.Client.LoadOperation.Complete(Exception error)
    at System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult)
    at System.ServiceModel.DomainServices.Client.DomainContext.<>c__DisplayClass1b.<Load>b__17(Object )

我在网上找到的所有内容都说要检查IIS上的身份验证区域,并确保它只设置为匿名身份验证,它就是。他们还说要启用WCF日志记录,当我将必要的文本添加到web.config文件时,我仍然没有得到任何日志。他们还说使用Fiddler2来跟踪HTTP调用,但我只在那里得到404错误,textview给我标准的IIS文件找不到网站。我无法弄清楚如何调试这个问题。

Silverlight应用程序需要调用一组第三方COM dll来计算水线圈的性能。因为我不想让应用程序运行OOB,(这将否定它作为Web应用程序而不是WPF应用程序的全部意义)我让ASP.net项目使用自定义实体与dll交互。

该函数(或者作为RIA服务调用它的查询)GetNewHWCoil位于DomainService类中并使用以下代码:

Public Function GetNewHWCoil() as HWCoil 'HWCoil is a custom object
   If bRanCalc then 'bRanCalc is a global boolean variable that gets set to true if the calc call on the dlls have been made
      Return mHWCoil 'global copy of the calculated coil object
      bRanCalc = False
   else
      Return New HWCoil
   end if
End Function

错误在应该调用任何计算之前运行,因此假设它在'Return New HWCoil'部分出错。

对此有任何帮助将不胜感激。

谢谢,

克里斯

1 个答案:

答案 0 :(得分:3)

我找到了解决问题的方法。我知道我可以让VS从IIS运行调试,当我创建虚拟目录时,它告诉我需要在服务器上安装ASP.NET 4。我想通过检查我已经完成的添加Windows功能对话框中的ASP.NET复选框。但它只安装了.NET 2版本。所以在网上查找这个新问题之后,我发现我需要运行命令

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i 

之后一切正常。

克里斯