【问题标题】:SilverLight Service DeploymentSilverLight 服务部署
【发布时间】:2011-07-18 19:24:55
【问题描述】:

我编写了一个带有简单 wcf 服务的 silverlight 应用程序。在我的计算机上运行良好,当我将其发布到我的网络帐户时,它不再适用于该服务。我尝试编辑 clintconfig 文件以将端点设置为新位置,但没有修复它。所以我下载了这个带有 WCF 示例设置的简单 SilverLight 应用程序进行部署,它也可以在我的个人计算机上运行,​​但当我将它发布到我的域时就不行了。我的账号支持asp.net、wcf等。我下载的例子链接:http://www.codeproject.com/Articles/152778/Deploying-Silverlight-with-WCF-Services

我是新手,所以我想知道这是否应该在没有额外工作的情况下工作,或者我是否遗漏了一些东西。我没有收到任何错误,我只是没有从服务中获得屏幕上显示的消息。

在 Hatchets 评论之后添加了以下内容: 我试图弄清楚如何找到错误消息。到目前为止,我知道它不起作用的唯一方法是我没有看到从服务返回的消息。 SilverLight 显示返回的消息“来自我的 WCF 服务的您好”。我在我的机器上看到它,但当我将它发布到我的域时却没有。如果我理解正确,我下载的应用程序可以设置为无需更改端点地址即可工作,但我对此很陌生,我还没有弄清楚我缺少什么。 谢谢。

在下面的 cmets 之后添加:

我抓住了提琴手,在我添加标签后,我能够在提琴手中看到一个错误,并且在浏览到 .svc 文件时。错误:

配置错误

描述:处理此请求所需的配置文件时出错。请查看下面的具体错误详细信息并适当地修改您的配置文件。

解析器错误消息:无法识别的属性“multipleSiteBindingsEnabled”。请注意,属性名称区分大小写。

Source Error: 


Line 30:         </bindings>
Line 31:         <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
Line 32:             multipleSiteBindingsEnabled="true" />
Line 33:         <services>
Line 34:             <service name="testWCF.Web.Service1">

源文件:\boswinfs03\home\users\web\b706\whl.forystpcom\web.config 行:32

版本信息:Microsoft .NET Framework 版本:2.0.50727.4211; ASP.NET 版本:2.0.50727.4016

我不熟悉 multipleSiteBindingsEnabled 以及处理此问题的最佳方法,运行的 .NET 版本会对此有影响吗?我运行它的服务器最多支持 3.5,但我注意到它在错误中引用了 2.0 版本,不确定它们是否已连接。

【问题讨论】:

  • 有几个箍要跳过,但我们需要知道它是如何不知道哪个箍是问题所在。
  • 我正在尝试找出如何找到错误消息。到目前为止,我知道它不起作用的唯一方法是我没有看到从服务返回的消息。 SilverLight 显示返回的消息“来自我的 WCF 服务的您好”。我在我的机器上看到它,但当我将它发布到我的域时却没有。如果我理解正确,我下载的应用程序可以设置为无需更改端点地址即可工作,但我对此很陌生,我还没有弄清楚我缺少什么。
  • 尝试启用一些网络跟踪工具,例如 Fiddler,然后查看 SL 应用正在向服务器发送什么请求,然后查看响应中是否有任何错误。
  • 您说您将其发布到您的域。这是托管服务提供商,还是您自己的服务器?如果它是托管服务提供商,您可能需要与他们核实计算机上是否安装并支持 WCF。如果是您自己的服务器,您可以尝试自己安装/重新安装 WCF。更多信息在这里:dotnetthoughts.net/2010/04/23/…
  • 哦,至于获取错误消息,请尝试浏览 .svc 文件,看看是否有任何错误消息。

标签: c# silverlight wcf


【解决方案1】:

我知道您所遵循的示例不是 RIA 服务,并且此链接是,但它可能会有所帮助,因为它解决了一些常见的 Silverlight/WCF 服务部署问题

http://blogs.msdn.com/b/saurabh/archive/2010/03/16/ria-services-application-deployment.aspx

【讨论】:

    【解决方案2】:

    MultipleSitesBindingEnabled 是 4.0 更新的一部分,因此它无法在支持最高 3.5 的服务器上运行。您需要将服务配置为使用特定端点。

    来源:MSDN

    附:当浏览到 .svc 时,它会说 .net 2.0 安装了 2.0 - 3.5 的任何东西,但是安装了 4.0 后它会说 4.0。

    【讨论】:

    • 谢谢,我的域名提供商确实回来了,告诉我他们只支持最高 3.5。
    【解决方案3】:

    我不认为这是答案,只是认为这是一个更干净的地方来进行更新。我的第一个问题是我的程序使用的是 4.0,而我的提供商不支持 4.0。我的第二个问题是:这个集合已经包含一个带有 http 方案的地址。此集合中的每个方案最多可以有一个地址。参数名称:item" ,我在以下位置找到了解决方法:http://www.j2i.net/blogengine/post/2010/02/08/This-collection-already-contains-an-address-with-scheme-http-There-can-be-at-most-one-address-per-scheme-in-this-collectionParameter-name-item.aspx 我可以通过添加以下代码来解决此问题。

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true">
      <baseAddressPrefixFilters>
        <add prefix="http://www.mydomain.com" />
      </baseAddressPrefixFilters>
    </serviceHostingEnvironment>
    

    感谢大家的帮助。感谢 carlosfigueira 建议下载 fiddler 应用程序。如果您想将该建议重新发布到答案,我会检查它,因为它帮助我找出我遇到的错误,从而解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多