积极答复者
Silverlight部署在IIS运行不行,在vs里面就行,在所在目录下打开也不行?

问题
-
很要命啊,弄了很久还没搞定。虽然这个问题,在论坛上已经有好几个了。我的问题是这样的,一个Silverlight 应用程序访问数据库,只是用dataGrid显示出来,用的是ADO .NET Data Services。在vs下调试没什么问题,运行在IIS下,能看到网页,但是点击一下Button之类的事件触发连接数据库并显示数据时,就出现问题,在IIS下没什么反应,在目录下打开就会出现如下:
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 4.0.20506)
时间戳: Mon, 31 Aug 2009 12:41:28 UTC
消息: Unhandled Error in Silverlight 2 Application 需要不包含查询或片段的格式正确的绝对 HTTP URL。
参数名: serviceRoot 位于 System.Data.Services.Client.DataServiceContext..ctor(Uri serviceRoot)
位于 SilverlightApplication1.ServiceReference1.testUserEntities..ctor(Uri serviceRoot)
位于 SilverlightApplication1.Page.OnLoaded(Object sender, EventArgs args)
位于 System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
位于 MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)
行: 1
字符: 1
代码: 0
URI: file:///D:/SilverlightApplication1/SilverlightApplication1.Web/Silverlight.js添加.xap、.xaml扩展类型,跟在根目录下添加clientaccesspolicy.xml、crossdomain.xml,已经试过了,还是不行。我也觉得是跨域问题,但不知道怎么解决。期待成功架设过Silverlight+database及有过相关问题的江湖人士相救!!!
Thanks for any help!
答案
-
如果你确定不存在CorssDomain的问题的话我觉得很有可能是Data Service的问题。
你在IIS中访问Data Service的URL和在VS.NET中调试Data Service时的URL应该是有所区别的。
1)首先检查一下你的Data Service是否在IIS中部署成功了。 用URL直接访问。
2)如果Data Service没有问题的话检查一下你的调用方式。看调用过程中相关的事件是否都成功触发并正确执行调用。- 已标记为答案 Allen Chen - MSFTModerator 2009年9月7日 1:38
-
确认RIA Service部署是否正确
确认Silverlight 是否连接到正确部署的RIA Service
确认你的RIA Service跟Silverlight xap在一个Domain下就不用设置跨域,如果不是就要配置一下跨域权限。
如果您觉得对您有帮助,请在“是否有帮助”点“是”;如果你觉得回复很满意,请“标记为已解答”- 已标记为答案 Allen Chen - MSFTModerator 2009年9月7日 1:38
全部回复
-
如果你确定不存在CorssDomain的问题的话我觉得很有可能是Data Service的问题。
你在IIS中访问Data Service的URL和在VS.NET中调试Data Service时的URL应该是有所区别的。
1)首先检查一下你的Data Service是否在IIS中部署成功了。 用URL直接访问。
2)如果Data Service没有问题的话检查一下你的调用方式。看调用过程中相关的事件是否都成功触发并正确执行调用。- 已标记为答案 Allen Chen - MSFTModerator 2009年9月7日 1:38
-
确认RIA Service部署是否正确
确认Silverlight 是否连接到正确部署的RIA Service
确认你的RIA Service跟Silverlight xap在一个Domain下就不用设置跨域,如果不是就要配置一下跨域权限。
如果您觉得对您有帮助,请在“是否有帮助”点“是”;如果你觉得回复很满意,请“标记为已解答”- 已标记为答案 Allen Chen - MSFTModerator 2009年9月7日 1:38