【发布时间】:2013-01-24 18:04:30
【问题描述】:
这可能很简单,但请耐心等待。
当我将我的 Silverlight 5 应用程序与 WCF 部署到 IIS 时,使用简单的复制和粘贴技术我可以完美地浏览网站,但是当我尝试通过像 192.168 这样的 ipaddress 访问它时。 1.3:8099 每次服务调用都会返回如下错误:
An exception occurred during the operation, making the result invalid. Check InnerException for exception details.
at .....
at <MyNamespace>.OnGetSomethingFromDataBaseCompleted(Object state)
我可以成功地从其他机器定位 WCF 服务 (192.168.1.3:8099/SomeService.svc)。 我编写了测试控制台应用程序来调用(并关闭)该服务,它正确地从远程 DBServer 获取了一些数据。 然而在浏览器中什么都没有。
当导航到 192.168.1.3:8099 时,A 应该从浏览器添加回 Fiddler 不会注册此调用,但它会从 localhost:8099 注册。
你能帮忙吗?
我认为对于比我更有部署经验的人来说,这是一个简单的问题,但如果您认为应该这样做,请继续阅读。
所以你正在阅读 =>(棱镜)。
我有一个 Silverlight 应用程序,它连接到调用 WCF 服务的数据库(添加为 Silverlight WCF 服务 - VSTemplate)。
在这个应用程序中,我介绍了像 Jeremy Likness 这样的 Prism 在他的 blog 上建议
我还使用 Web 代理从 ViewModel 访问 WCF 服务。
我的项目结构:
- WEB项目
- SilverlightAppWithShell
- 模块A
- 模块B
- 普通项目
部署目录结构:
C:\inetpub\wwwroot\MyAppFolder(IIS 用户可以访问它)
- .\bin\AllDlls
- .\ClientBin\AllXapFiles(来自上述所有项目的XAP文件)
- .\Services\All *.cs 文件定义服务操作合同
- .\Web.config
- .\TestPage.html
- .\TestPage.aspx
- .\Silverlight.js
- .\AllServices *.scv 文件
最后但并非最不重要的一点
- .\clientaccesspolicy.xml
里面有这段代码:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>"
</allow-from>
<grant-to>
<resource path="/Services" include-subpaths="true"/><!--I tried with App_Code here when renaming Services dir to App_Code with the same wain result-->
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
感谢您的阅读
【问题讨论】:
-
我目前正在查看this,如果有帮助,我会告诉你。
标签: c# wcf silverlight iis prism