1

在此处输入图像描述我创建了两个独立的项目,一个 Web 表单,一个 Silverlight。我已经在 Web 项目中实现了一个 Web 服务,我通过 Silverlight 中的 ServiceReference 调用它来将一些值传递回 Web 项目。

问题:在测试中,如果我在一个 VS 实例中启动我的 Web 项目,并且 Silverlight 项目是另一个 VS 实例 - Silverlights 调用服务并且我在 Web 项目等中收到调用,则它可以 100% 工作。

我现在已将 Silverlight 项目包含在与 Web 项目相同的解决方案中,但现在它无法正常工作 - 没有错误,没有来自服务的回复,什么都没有......

我的 ServiceReferences.ClientConfig 的内容:

<configuration>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="EnrollServiceSoap" maxBufferSize="2147483647"
                maxReceivedMessageSize="2147483647">
                <security mode="None" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost:8080/EnrollService.asmx"
            binding="basicHttpBinding" bindingConfiguration="EnrollServiceSoap"
            contract="EnrollServiceReference.EnrollServiceSoap"
            name="EnrollServiceSoap" />
    </client>
</system.serviceModel>

我在 WEB 项目中的服务实现:

namespace XXX
{
/// <summary>
/// Summary description for EnrollService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class EnrollService : System.Web.Services.WebService
{

    [WebMethod]
    public void UpdateFingerTemplates(string PersonID)
    {
        Person person = SQLData.Persons.getPersonByID(PersonID);
        Person newPerson = SQLData.Persons.getPersonByID(PersonID);
        newPerson.ID_Number = PersonID;

        SQLData.Persons.UpdatePerson(newPerson, person, null);

    }
}
}
4

3 回答 3

0

问题解决了...我是一个 Dumb@ss,通过从 BackgroundWorker.ReportProgress 调用 WCF 服务(我没想到会成为问题(如果有人关心评论为什么),并且愚蠢地忽略了在帖子中提及)对 BackgroundWorker.ProcessCompleted 的 WCF 服务调用解决了该问题。

于 2013-10-15T13:33:49.417 回答
0

将您的服务项目映射到本地 IIS 以进行调试。并从 IIS 路径添加服务引用,它应该在一个解决方案本身中工作。右键单击 WCF 项目>>属性>>Web>>选择本地 IIS Web 服务器>>输入 IIS 应用程序路径的项目 URL

于 2013-10-09T11:39:56.830 回答
-1

在您的 silver Light 项目中首先删除旧的服务参考,然后项目菜单 ===> 添加服务参考 ====> 高级 ... ====> 添加 Web 参考

然后在此解决方案链接中选择 Web 服务。

于 2013-10-09T12:17:22.867 回答