首页 新闻 会员 周边

WCF RIA Service 跨域报错

0
悬赏园豆:160 [已解决问题] 解决于 2010-09-21 14:07

这是源码:http://files.cnblogs.com/toad/WCFRIAServiceDemo.rar

如题,跨域文件是对的,也安装了Ria service tookit,系统是Win7,IIS7,服务端在一个独立的网站上,在客户端通过服务引用的方式使用服务。

我的跨域文件位置正确,在IIS网站根目录下,用Fiddler抓包看到能正确访问跨域文件,详细如下:

 

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>

 

 

 请下载源码帮我调试一下,是不是我哪里还没设置对?

http://files.cnblogs.com/toad/WCFRIAServiceDemo.rar

问题补充: 我要用IP访问服务,不要用localhost,用localhost我这里也可以用
蛤蟆王子的主页 蛤蟆王子 | 初学一级 | 园豆:6
提问于:2010-08-25 19:14
< >
分享
最佳答案
0

在IE中输入:http://192.168.1.80/TestServer/Services/TestServer-service.svc 看看能访问到吗?

你还可以尝试下下面这个地址:http://192.168.1.80/TestServer/TestServer-service.svc

收获园豆:160
Launcher | 高人七级 |园豆:45045 | 2010-08-26 10:30
在IE中访问svc可以正常访问!
蛤蟆王子 | 园豆:6 (初学一级) | 2010-08-26 10:45
上边有源码,很简单的源码,大侠帮我调试一下吧,谢谢了!!!!
蛤蟆王子 | 园豆:6 (初学一级) | 2010-08-26 10:45
@蛤蟆王子:把你的 TestServer 使用的应用程序池的 .Net Framework 版本改为 v4.0
Launcher | 园豆:45045 (高人七级) | 2010-08-26 11:34
我的应用程序池是ASP.NET 4.0,请问是否必须为它新建一个应用程序池?
蛤蟆王子 | 园豆:6 (初学一级) | 2010-08-26 11:38
@蛤蟆王子: 你建虚拟目录的时候,它就自动新建了一个应用程序池,默认名字是 TestServer. 默认是 .net 2.0 ,不是 4.0 ,我测试了你的项目,修改此项后,就正常了. 你仔细看下你的应用程序池设置,选中 TestServer ,然后点 "高级设置",然后有"应用程序池"一项的值是什么,比如是 TestServer ,那么有两种方式修改,一种是直接修改,从下拉列表中选择"ASP.NET v4.0";另一种方式是点击"应用程序池"节点,然后从列表中选择"TestServer",然后点击"高级设置",然后把".Net Framework 版本"一项的值改为:v4.0
Launcher | 园豆:45045 (高人七级) | 2010-08-26 12:04
@Galactica:忘了告诉你,你的 TestServer 所属的站点的应用程序池,也要是.net v4.0 的. IIS7 默认的站点应该是 Default Web Site,Default Web Site对应的应用程序池需要是 .net 4.0 的. 还有你的服务配置文件中的 <system.webServer> <modules runAllManagedModulesForAllRequests="true"> <add name="DomainServiceModule" preCondition="managedHandler" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </modules> <validation validateIntegratedModeConfiguration="false" /> </system.webServer> 这个中的 <add name="DomainServiceModule" preCondition="managedHandler" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 要去掉,我这里提示已经添加过了,你根据你的服务能否正常访问来决定是否去掉.
Launcher | 园豆:45045 (高人七级) | 2010-08-26 13:42
@Galactica:大侠真不好意思,还要继续打扰您,您说的这些我都试过了,可还是同样的错误,如果可以,能加我QQ吗:542237336?
蛤蟆王子 | 园豆:6 (初学一级) | 2010-08-26 15:23
@蛤蟆王子:公司不让上QQ.策略文件放在网站根路径下.这样吧,你新建一个网站,就叫TestServer,指定端口8080,物理路径:d:\TestServer ,然后新建应用程序池 TestServer,指定.net framework 版本为 v4.0.然后把你编译好的服务拷贝到d:\TestServer ,同时把策略文件也拷贝到 d:\TestServer 下。 然后在服务引用中更改地址为:http://192.168.1.80:8080/TestServer-service.svc ,并更新引用,刷新本地代理类和配置文件。 然后启动你的silverlight应用程序测试。
Launcher | 园豆:45045 (高人七级) | 2010-08-26 16:25
@Galactica: 很遗憾的告诉您,还是不行!(汗)
蛤蟆王子 | 园豆:6 (初学一级) | 2010-08-26 17:54
@蛤蟆王子:你的服务,如果不用silver light ,你有访问成功过吗?
Launcher | 园豆:45045 (高人七级) | 2010-08-26 22:11
其他回答(1)
0

InnerException是什么?

明年我18 | 园豆:240 (菜鸟二级) | 2010-08-26 00:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册