2011-05-24 83 views
2

我在任何地方都搜索解决方案以解决我的问题,但我无法找到它。我已经构建了一个Silverlight 4导航应用程序,并且正在使用RIA服务来处理自定义实体(实质上运行COM dll的服务器端调用)。在我的调试环境,一切工作正常,但是当我尝试部署到IIS7(在开发计算机上),作为一个网站,它呼吁实体获取查询时给了我以下错误:错误404 - 在Silverlight RIA服务调用中找不到文件

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'部分出现错误。

任何帮助,将不胜感激。

感谢,

克里斯

回答

3

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

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

然后一切正常。

Chris