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

问题描述

| 我到处都在寻找解决问题的方法,但是找不到。我已经构建了Silverlight 4导航应用程序,并且正在使用RIA Services处理自定义实体(该实体实际上正在运行对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
错误在应调用任何计算之前运行,因此假设该错误在“返回新HWCoil”部分上出现。 任何帮助,将不胜感激。 谢谢, 克里斯     

解决方法

我找到了解决我问题的方法。我喜欢我可以让VS从IIS运行调试,当我创建虚拟目录时,它告诉我我需要在服务器上安装ASP.NET 4。我认为通过选中“添加Windows功能”对话框中的“ ASP.NET”复选框,我已经做到了。但是它仅安装.NET 2版本。因此,在网上寻找这个新问题之后,我发现我需要运行命令
C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_regiis -i 
之后一切正常。 克里斯