IIS部署silverlight + wcf 项目,搞了三天了没搞定呀!

woodyy 2009-07-20 04:59:24
web项目包含两个东西,wcf(silverlight enabled wcf) 和silverlight的xap。

如果web项目不放在iis上,只用vs08浏览的话,可以调取wcf返回的数据。

如果web项目上iis上就出问题了,具体错误:

throw new Error("Unhandled Error in Silverlight Application 操作过程中出现异常,结果无效。有关异常的详细信息,请查看 InnerException。 位于 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()\n 位于 SilverlightApplication1.ServiceReference1.DoWorkCompletedEventArgs.get_Result()\n 位于 SilverlightApplication1.MainPage.c_DoWorkCompleted(Object sender, DoWorkCompletedEventArgs e)\n 位于 SilverlightApplication1.ServiceReference1.Service1Client.OnDoWorkCompleted(Object state)");

前几天用webservice做也出现同样的情况。

我的wcf里的方法很简单的,就一个测试:

[OperationContract]
public string DoWork()
{
// Add your operation implementation here
return "aaaaaaaaaaaaaaaaaaaaa";
}

PS: silverlight调用wcf没错,因为不在IIS下没错误,一定是IIS部署的问题。

三天了还没搞定。下了一个Silverlight Deployment Guide v2
全英的,搞不定呀。

*************************************************************************

iis上加跨域访问策略
clientaccesspolicy.xml
__________________________________

谢谢熊哥,http://localhost/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>
内容也不错,为什么还有问题呀。

另外,我好像没涉及到跨域的问题吧,都在一个web项目里呀。

************************************************************************

http://localhost/wcfTest1/Service1.svc?wsdl

我的wcf都可以浏览呀,为什么仍旧不行呢??

*************************************************************************

我的是xp系统,用的是IIS 5.1版本。

***********************************************************************
...全文
2410 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm20224 2010-12-21
  • 打赏
  • 举报
回复
楼主解决了吗。怎么解决呢
海涵德 2010-04-20
  • 打赏
  • 举报
回复
这个帖子太早了,不致问题得到解决否?可以参见我最近发的两个帖子,一个是关于部署问题的一个是关于序列化问题的。
CreatBird 2009-09-10
  • 打赏
  • 举报
回复
LZ,这个问题解决了吗?我也遇到这样的问题了,到底是哪里出错了呢
觉得肯定是IIS配置出问题了
henry_wzt 2009-08-27
  • 打赏
  • 举报
回复
有解决的没有!同意的问题!

如果publish后引用wcf服务不能显示是怎么回事,在本地可以查看!
zengkunj 2009-08-14
  • 打赏
  • 举报
回复
有人解决了问题吗?
ServiceReferences.ClientConfig中的地址你怎么写才是相对的呢?
<endpoint address="你的地址i"
需要相对地址,因为可能部署到其他不同地址的IIS上,难道都要去改吗?
另外一个方法是:
ServiceReference1.LoginServiceClient LoginSC = new rzcqSL.ServiceReference1.LoginServiceClient();

那个括号里是5重载的,如果你能程序计算出你访问的服务器的服务地址,把他写进去,这样就可以发布到任意地址,而不用改写ServiceReferences.ClientConfig里的内容了。
wormwormwormworm 2009-07-23
  • 打赏
  • 举报
回复
关注
jlj84237485 2009-07-23
  • 打赏
  • 举报
回复
路过
pengchengwanli 2009-07-22
  • 打赏
  • 举报
回复
用的什么数据库?在你的机器上可以运行吧?
jv9 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 pengchengwanli 的回复:]
这是我的web.config的关键部分想问的是
1:那两个跨域的xml 要不要调用代码?
2:如何修改web.config

配置:VS2008+SL2.0
[/Quote]

在web.config只是标示endpoint contract,需要注意的是Silverlight仅仅支持basicHttpBinding方式。 另外一个重要文件,是在服务器端的ServiceReferences.ClientConfig是声明WCF webservice的,其中地址很重要。
ms44 2009-07-21
  • 打赏
  • 举报
回复
直接访问WCF的地址,看看能否访问。
如果可以,检查IIS设置。
pengchengwanli 2009-07-21
  • 打赏
  • 举报
回复
这是我的web.config的关键部分想问的是
1:那两个跨域的xml 要不要调用代码?
2:如何修改web.config

配置:VS2008+SL2.0
pengchengwanli 2009-07-21
  • 打赏
  • 举报
回复
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="GetDataWCFBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="GetDataWCFBehavior" name="GetDataWCF">
<endpoint address="" binding="basicHttpBinding" contract="IGetDataWCF">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
</system.serviceModel>
pengchengwanli 2009-07-21
  • 打赏
  • 举报
回复
我都研究一周了还是没什么进展,本来前段时间看了看这个
http://www.cnblogs.com/amar-yao/
及附属的
http://www.cnblogs.com/seeker/

http://www.dotnetcurry.com/(X(1)S(4n021y452hfero55f2en1ciw))/ShowArticle.aspx?ID=208&AspxAutoDetectCookieSupport=1
起了作用,但后来又不行了,头都大了..........,

看不懂 web.config是关键啊,希望上面的对你有用,并希望知情解释原因啊,

我的silverlivght 网站部分和WCF项目在*.web下,
jv9 2009-07-20
  • 打赏
  • 举报
回复
MSDN这篇文章应该对你有帮助。

http://msdn.microsoft.com/en-us/library/cc197940(VS.95).aspx
jv9 2009-07-20
  • 打赏
  • 举报
回复
首先,确认Webservice工作正常,尝试更新服务器端的Webservice调用;
然后,检查ServiceReferences.ClientConfig文件,确认你的endpoint地址是当前你的webservice地址。

<configuration>
<system.serviceModel>

<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IDataService" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="你的地址i"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IDataService"
contract="DataService.IDataService" name="BasicHttpBinding_IDataService" />
</client>
</system.serviceModel>
</configuration>



如果发布到IIS,需要修改地址,不能用随机端口,否则调用Webservice会失败。

通常来说,IIS无法调用WCF是因为在IIS没有注册成功造成的。

8,736

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧