我创建了两个独立的项目,一个Web窗体,一个Silverlight。 我在Web项目中实现了一个Web服务,我通过Silverlight的ServiceReference调用它来将一些值传递回Web项目。
问题: 在测试中,如果我在一个VS实例中启动我的Web项目,它将100%工作,而Silverlight项目是另一个VS实例 - Silverlight调用该服务,我在Web项目中接收调用等等。
我现在已将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);
}
}
}
答案 0 :(得分:0)
将您的服务项目映射到本地IIS以进行调试。并从IIS路径添加服务引用它应该在一个解决方案本身。 右键单击WCF项目&gt;&gt;属性&gt;&gt; Web&gt;&gt;选择本地IIS Web服务器&gt;&gt;输入IIS应用程序路径的项目URL
答案 1 :(得分:0)
问题解决了...... 我是一个Dumb @ ss,通过从BackgroundWorker.ReportProgress调用WCF服务(我不认为这是一个问题(如果有人关心为什么会这样做),并在帖子中愚蠢地忽略了提及) 将对WCF服务的调用移至BackgroundWorker.ProcessCompleted解决了该问题。
答案 2 :(得分:-1)
首先删除旧的服务引用 项目菜单===&gt;添加服务参考====&gt;高级... ====&gt;添加Web引用
然后在此解决方案链接中选择Web服务。