现状:
站点中添加了“启用了Silverlight的WCF服务”,用来为“Silverlight”提供数据访问。发布之后,部署在IIS6.0下,“Xap页面”中的内容就显示不出来了,已经添加了“MIME”。而在VS2010开发环境中是正常的呢?
问题:请问这是为什么呢?是不是“启用了Silverlight的WCF服务”需要在“IIS6下”进行什么配置?
17 个解决方案
#1
“MIME类型”这个没有问题。
什么是“跨域访问文件”,好像没有?必须要放么?
IIS下的“WCF”访问如下图:
什么是“跨域访问文件”,好像没有?必须要放么?
IIS下的“WCF”访问如下图:
#2
准确来讲:
“Silverlight”访问不到部署在“IIS6”上的“WCF Servcie服务”。
“Silverlight”访问不到部署在“IIS6”上的“WCF Servcie服务”。
#3
跨域访问文件,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="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
文件加上了啊,但是提示错误信息如下:
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; Zune 4.7; .NET CLR 1.1.4322)
时间戳: Sat, 24 Mar 2012 06:10:29 UTC
消息: Unhandled Error in Silverlight Application 操作过程中出现异常,结果无效。有关异常的详细信息,请查看 InnerException。 位于 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
位于 MyCharts.MyChartsService.GetWaterMonitoringDatasCompletedEventArgs.get_Result()
位于 MyCharts.WaterMonitoring.client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
位于 MyCharts.MyChartsService.ChartsServiceClient.OnGetWaterMonitoringDatasCompleted(Object state)
行: 1
字符: 1
代码: 0
URI: http://10.10.233.120/Tj/Web/WaterMonitoring.aspx
<?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="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
文件加上了啊,但是提示错误信息如下:
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; Zune 4.7; .NET CLR 1.1.4322)
时间戳: Sat, 24 Mar 2012 06:10:29 UTC
消息: Unhandled Error in Silverlight Application 操作过程中出现异常,结果无效。有关异常的详细信息,请查看 InnerException。 位于 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
位于 MyCharts.MyChartsService.GetWaterMonitoringDatasCompletedEventArgs.get_Result()
位于 MyCharts.WaterMonitoring.client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
位于 MyCharts.MyChartsService.ChartsServiceClient.OnGetWaterMonitoringDatasCompleted(Object state)
行: 1
字符: 1
代码: 0
URI: http://10.10.233.120/Tj/Web/WaterMonitoring.aspx
#4
断点跟踪:
client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
#5
在VS2010下没有任何问题的,设断点有用么?
#6
哦,没注意看上面的,只看到异常信息了。
你那个文件时策略文件一般用于silverlight socket上,将crossdomain.xml这个文件放到iis中试试。
<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
<site-control permitted-cross-domain-policies="all" />
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
你那个文件时策略文件一般用于silverlight socket上,将crossdomain.xml这个文件放到iis中试试。
<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
<site-control permitted-cross-domain-policies="all" />
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
#7
文件加上了,但是还是不行啊。
错误信息如下:
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; AskTbPTV/5.11.3.15590; .NET4.0C; .NET4.0E)
时间戳: Sat, 24 Mar 2012 09:05:59 UTC
消息: Unhandled Error in Silverlight Application [Async_ExceptionOccurred]
参数:
调试资源字符串不可用。密钥和参数通常提供足够的信息用以诊断该问题。请访问 http://go.microsoft.com/fwlink/?linkid=106663&Version=4.1.10111.0&File=System.dll&Key=Async_ExceptionOccurred 位于 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
位于 MyCharts.MyChartsService.GetWaterMonitoringDatasCompletedEventArgs.get_Result()
位于 MyCharts.WaterMonitoring.client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
位于 MyCharts.MyChartsService.ChartsServiceClient.OnGetWaterMonitoringDatasCompleted(Object state)
行: 1
字符: 1
代码: 0
URI: http://localhost/Tj/Web/WaterMonitoring.aspx
#8
这不是很清楚了,我没这样使用过,呵呵。
在vs调试状态下silverlight调用发布到iis的webservice是正常的,但是把silverlight也发布到iis上就出现了上面的问题么?
在vs调试状态下silverlight调用发布到iis的webservice是正常的,但是把silverlight也发布到iis上就出现了上面的问题么?
#9
不是直接发布“asp.net站点”站点的么?
“vs调试状态下silverlight调用发布到iis的webservice”???“启用了Silverlight的WCF服务”它也是VS2010中的没有单独发布啊。
用的是“启用了Silverlight的WCF服务”,它是怎么发布的???
#10
有人么,谢谢了。
#11
http://blog.csdn.net/madaming/article/details/6329640
#12
嗯。谢谢“sp1234”,谢谢大家。
string weburl = Application.Current.Host.Source.ToString();
weburl = weburl.Substring(0, (weburl.Length - 23)) + "/ChartsService.svc";
MyChartsService.ChartsServiceClient client = new MyChartsService.ChartsServiceClient("CustomBinding_ChartsService1", weburl);
这样写就好了。
但是还想再请教下,跨域到底指的是什么?
“clientaccesspolicy.xml”和“crossdomain.xml”分别有什么作用?
string weburl = Application.Current.Host.Source.ToString();
weburl = weburl.Substring(0, (weburl.Length - 23)) + "/ChartsService.svc";
MyChartsService.ChartsServiceClient client = new MyChartsService.ChartsServiceClient("CustomBinding_ChartsService1", weburl);
这样写就好了。
但是还想再请教下,跨域到底指的是什么?
“clientaccesspolicy.xml”和“crossdomain.xml”分别有什么作用?
#13
http://blog.csdn.net/madaming/article/details/6358519
#14
#region 引用WCF public static EndpointAddress getEndpointAddress(string relative_uri) { return new EndpointAddress(new Uri(Application.Current.Host.Source, relative_uri)); } public static void use_wcf(ref wcfclient wcf_instance, string end_point_address) { EndpointAddress _end_point_address = getEndpointAddress(end_point_address); //调用wcf超时的解决办法 #if (TRACE) wcf_instance.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 18, 0); wcf_instance.Endpoint.Binding.CloseTimeout = new TimeSpan(0, 18, 0); wcf_instance.Endpoint.Binding.SendTimeout = new TimeSpan(1, 18, 0); wcf_instance.Endpoint.Binding.ReceiveTimeout = new TimeSpan(1 , 18, 0); #else wcf_instance.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 1, 0); wcf_instance.Endpoint.Binding.CloseTimeout = new TimeSpan(0, 1, 0); wcf_instance.Endpoint.Binding.SendTimeout = new TimeSpan(0, 5, 0); wcf_instance.Endpoint.Binding.ReceiveTimeout = new TimeSpan(0, 5, 0); #endif wcf_instance.Endpoint.Address = _end_point_address; } #endregion wcfclient my_wcf_instance=new wcfclient(); use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc");
use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc");
把你的wcf引用实例如my_wcf_instance经过方法use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc")一下,你的问题可能就解决了。红色的那段代码我想你应该能看明白。
谢谢,这个方法的过程是怎样的?
这样做有什么好处???
use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc");
把你的wcf引用实例如my_wcf_instance经过方法use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc")一下,你的问题可能就解决了。红色的那段代码我想你应该能看明白。
谢谢,这个方法的过程是怎样的?
这样做有什么好处???
#15
其实第一个链接地址是我先前使用的,是调试过的。第二个链接地址是我后来看到的,认为说的有点道理,比我的第一个方法更理论些,但没有调试过。
#16
两边的环境是不是不一样
#17
嗯。谢谢了。。。
#1
“MIME类型”这个没有问题。
什么是“跨域访问文件”,好像没有?必须要放么?
IIS下的“WCF”访问如下图:
什么是“跨域访问文件”,好像没有?必须要放么?
IIS下的“WCF”访问如下图:
#2
准确来讲:
“Silverlight”访问不到部署在“IIS6”上的“WCF Servcie服务”。
“Silverlight”访问不到部署在“IIS6”上的“WCF Servcie服务”。
#3
跨域访问文件,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="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
文件加上了啊,但是提示错误信息如下:
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; Zune 4.7; .NET CLR 1.1.4322)
时间戳: Sat, 24 Mar 2012 06:10:29 UTC
消息: Unhandled Error in Silverlight Application 操作过程中出现异常,结果无效。有关异常的详细信息,请查看 InnerException。 位于 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
位于 MyCharts.MyChartsService.GetWaterMonitoringDatasCompletedEventArgs.get_Result()
位于 MyCharts.WaterMonitoring.client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
位于 MyCharts.MyChartsService.ChartsServiceClient.OnGetWaterMonitoringDatasCompleted(Object state)
行: 1
字符: 1
代码: 0
URI: http://10.10.233.120/Tj/Web/WaterMonitoring.aspx
<?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="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
文件加上了啊,但是提示错误信息如下:
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; Zune 4.7; .NET CLR 1.1.4322)
时间戳: Sat, 24 Mar 2012 06:10:29 UTC
消息: Unhandled Error in Silverlight Application 操作过程中出现异常,结果无效。有关异常的详细信息,请查看 InnerException。 位于 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
位于 MyCharts.MyChartsService.GetWaterMonitoringDatasCompletedEventArgs.get_Result()
位于 MyCharts.WaterMonitoring.client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
位于 MyCharts.MyChartsService.ChartsServiceClient.OnGetWaterMonitoringDatasCompleted(Object state)
行: 1
字符: 1
代码: 0
URI: http://10.10.233.120/Tj/Web/WaterMonitoring.aspx
#4
断点跟踪:
client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
#5
在VS2010下没有任何问题的,设断点有用么?
#6
哦,没注意看上面的,只看到异常信息了。
你那个文件时策略文件一般用于silverlight socket上,将crossdomain.xml这个文件放到iis中试试。
<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
<site-control permitted-cross-domain-policies="all" />
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
你那个文件时策略文件一般用于silverlight socket上,将crossdomain.xml这个文件放到iis中试试。
<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
<site-control permitted-cross-domain-policies="all" />
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
#7
文件加上了,但是还是不行啊。
错误信息如下:
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; AskTbPTV/5.11.3.15590; .NET4.0C; .NET4.0E)
时间戳: Sat, 24 Mar 2012 09:05:59 UTC
消息: Unhandled Error in Silverlight Application [Async_ExceptionOccurred]
参数:
调试资源字符串不可用。密钥和参数通常提供足够的信息用以诊断该问题。请访问 http://go.microsoft.com/fwlink/?linkid=106663&Version=4.1.10111.0&File=System.dll&Key=Async_ExceptionOccurred 位于 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
位于 MyCharts.MyChartsService.GetWaterMonitoringDatasCompletedEventArgs.get_Result()
位于 MyCharts.WaterMonitoring.client_GetWaterMonitoringDatasCompleted(Object sender, GetWaterMonitoringDatasCompletedEventArgs e)
位于 MyCharts.MyChartsService.ChartsServiceClient.OnGetWaterMonitoringDatasCompleted(Object state)
行: 1
字符: 1
代码: 0
URI: http://localhost/Tj/Web/WaterMonitoring.aspx
#8
这不是很清楚了,我没这样使用过,呵呵。
在vs调试状态下silverlight调用发布到iis的webservice是正常的,但是把silverlight也发布到iis上就出现了上面的问题么?
在vs调试状态下silverlight调用发布到iis的webservice是正常的,但是把silverlight也发布到iis上就出现了上面的问题么?
#9
不是直接发布“asp.net站点”站点的么?
“vs调试状态下silverlight调用发布到iis的webservice”???“启用了Silverlight的WCF服务”它也是VS2010中的没有单独发布啊。
用的是“启用了Silverlight的WCF服务”,它是怎么发布的???
#10
有人么,谢谢了。
#11
http://blog.csdn.net/madaming/article/details/6329640
#12
嗯。谢谢“sp1234”,谢谢大家。
string weburl = Application.Current.Host.Source.ToString();
weburl = weburl.Substring(0, (weburl.Length - 23)) + "/ChartsService.svc";
MyChartsService.ChartsServiceClient client = new MyChartsService.ChartsServiceClient("CustomBinding_ChartsService1", weburl);
这样写就好了。
但是还想再请教下,跨域到底指的是什么?
“clientaccesspolicy.xml”和“crossdomain.xml”分别有什么作用?
string weburl = Application.Current.Host.Source.ToString();
weburl = weburl.Substring(0, (weburl.Length - 23)) + "/ChartsService.svc";
MyChartsService.ChartsServiceClient client = new MyChartsService.ChartsServiceClient("CustomBinding_ChartsService1", weburl);
这样写就好了。
但是还想再请教下,跨域到底指的是什么?
“clientaccesspolicy.xml”和“crossdomain.xml”分别有什么作用?
#13
http://blog.csdn.net/madaming/article/details/6358519
#14
#region 引用WCF public static EndpointAddress getEndpointAddress(string relative_uri) { return new EndpointAddress(new Uri(Application.Current.Host.Source, relative_uri)); } public static void use_wcf(ref wcfclient wcf_instance, string end_point_address) { EndpointAddress _end_point_address = getEndpointAddress(end_point_address); //调用wcf超时的解决办法 #if (TRACE) wcf_instance.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 18, 0); wcf_instance.Endpoint.Binding.CloseTimeout = new TimeSpan(0, 18, 0); wcf_instance.Endpoint.Binding.SendTimeout = new TimeSpan(1, 18, 0); wcf_instance.Endpoint.Binding.ReceiveTimeout = new TimeSpan(1 , 18, 0); #else wcf_instance.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 1, 0); wcf_instance.Endpoint.Binding.CloseTimeout = new TimeSpan(0, 1, 0); wcf_instance.Endpoint.Binding.SendTimeout = new TimeSpan(0, 5, 0); wcf_instance.Endpoint.Binding.ReceiveTimeout = new TimeSpan(0, 5, 0); #endif wcf_instance.Endpoint.Address = _end_point_address; } #endregion wcfclient my_wcf_instance=new wcfclient(); use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc");
use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc");
把你的wcf引用实例如my_wcf_instance经过方法use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc")一下,你的问题可能就解决了。红色的那段代码我想你应该能看明白。
谢谢,这个方法的过程是怎样的?
这样做有什么好处???
use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc");
把你的wcf引用实例如my_wcf_instance经过方法use_wcf(ref my_wcf_instance, @"../Services/myWCF.svc")一下,你的问题可能就解决了。红色的那段代码我想你应该能看明白。
谢谢,这个方法的过程是怎样的?
这样做有什么好处???
#15
其实第一个链接地址是我先前使用的,是调试过的。第二个链接地址是我后来看到的,认为说的有点道理,比我的第一个方法更理论些,但没有调试过。
#16
两边的环境是不是不一样
#17
嗯。谢谢了。。。