在发布之前我确实已经完全耗尽了所有可用资源。 我正在开发需要访问SQL服务器的Windows Phone 8应用程序,我无法连接到本地Web服务。我从来没有这样做过,而且我对这个概念不熟悉。 我已经尝试了不同的解决方案,底线是 - 我一直得到-System.ServiceModel.CommunicationException - {System.Net.WebException} - 远程服务器返回错误:NotFound。 - 错误。
正如我在http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj684580(v=vs.105).aspx尝试官方msdn的回答之前所说的那样,它对我没有用。 我可以在网上找到类似的文章。当然不需要提到我完全打破防火墙(防火墙中的例外不起作用),禁用防病毒,检查路由器上的dhcp设置,更改互联网选项中的代理设置,以及所有类型的小时奇怪的尝试让它运行。什么都没有。模拟器似乎连接到互联网没有问题,有三个虚拟交换机(我见过的大多数文章只提到两个,但这并不意味着什么),两个有169.254.xx地址,而第三个有192.168.xx地址。
当我运行ipconfig时,我没有看到(以太网适配器vEthernet(Marvell Yukon 88E8057 PCI-E千兆以太网控制器虚拟交换机)的默认网关。似乎没有人提到必须有一个,所以我不知道如果这很重要,地址是(默认,我相信)169.254.80.80。
我能够在运行时(右键单击+浏览器中的视图)Service1.svc文件时看到该服务,但任何运行手机项目的尝试都失败。
我试图在VS2012和VS2013中解决它。同样的事情。
我没有想法,我的下一个最好的猜测是在同一台计算机的另一个部分安装Windows 8.1,看看会发生什么。在这一个我正在运行Windows 8专业版。
我希望我足够具体,不知道这对其他人有多大帮助因为我没有看到任何人在重新配置applicationhost.config文件和解决方案后提到问题,因为它指向了msdn网站
有没有人知道可能是什么原因?
抱歉,我没有发布任何代码。在WFC项目中,我创建了非常简单的PersonScore.cs
[DataContract]
public class PersonScore
{
[DataMember]
public string PersonId { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public double Score { get; set; }
[DataMember]
public string Message { get; set; }
}
在IscoreTransaction.cs中添加了一个方法
[ServiceContract]
public interface IScoreTransaction
{
[OperationContract]
PersonScore GetPersonInfo(string personId);
}
并且,ScoreTransaction.svc(只是将某些内容发送回PhoneApp)
public class ScoreTransaction : IScoreTransaction
{
private double score = 10.00;
public PersonScore GetPersonInfo(string personId)
{
//without checking the id, simply return something
return new PersonScore { PersonId = "1", Name = "John Doe", Score = score, Message = "Hello world" };
}
}
在WF项目中向WFC添加了一个服务引用(ScoringServiceReference),并试图从MainPage.xaml.cs中获取结果,如:
public partial class MainPage : PhoneApplicationPage
{
private readonly ScoringServiceReference.ScoreTransactionClient proxy;
public MainPage()
{
InitializeComponent();
proxy = new ScoringServiceReference.ScoreTransactionClient();
proxy.GetPersonInfoCompleted += proxy_GetPersonInfoCompleted;
}
private void proxy_GetPersonInfoCompleted(object sender, ScoringServiceReference.GetPersonInfoCompletedEventArgs e)
{
var result = e.Result;
}
private void GetInfoBtn_Click(object sender, RoutedEventArgs e)
{
proxy.GetPersonInfoAsync(txtId.Text);
}
}
卡住了。我尝试连接(在我重新配置applicationhost.config文件之后)使用设备的IP之一 - 192.168.0.100,我从设备中获得了其他工具 - >网络,但可以使用它运行IIS Express。