我到处搜索我的问题的解决方案,但我找不到。我已经构建了一个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'部分出错。
对此有任何帮助将不胜感激。
谢谢,
克里斯
答案 0 :(得分:3)
我找到了解决问题的方法。我知道我可以让VS从IIS运行调试,当我创建虚拟目录时,它告诉我需要在服务器上安装ASP.NET 4。我想通过检查我已经完成的添加Windows功能对话框中的ASP.NET复选框。但它只安装了.NET 2版本。所以在网上查找这个新问题之后,我发现我需要运行命令
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i
之后一切正常。
克里斯