Windows phone 8 尝试使用webapi从windows phone 8应用程序连接到Microsoft azure上的mvc服务器时出错

Windows phone 8 尝试使用webapi从windows phone 8应用程序连接到Microsoft azure上的mvc服务器时出错,windows-phone-8,asp.net-web-api,Windows Phone 8,Asp.net Web Api,我对所有这些技术都有点陌生,所以我会尽可能地说清楚 我正在编写一个windows phone应用程序,它以字符串格式向服务器发送数据: public class sendDataControl { private string response = ""; public void sendToServer(string FullSTR) { try { WebClient webClient = new WebCl

我对所有这些技术都有点陌生,所以我会尽可能地说清楚

我正在编写一个windows phone应用程序,它以字符串格式向服务器发送数据:

public class sendDataControl
{
    private string response = "";

    public void sendToServer(string FullSTR)
    {
        try
        {
            WebClient webClient = new WebClient();
            Uri uri = new Uri("http://pricequeryserver.azurewebsites.net/api/ReceiptDataService/?incomingdata=");

            webClient.UploadStringAsync(uri,FullSTR);
            webClient.UploadStringCompleted += new UploadStringCompletedEventHandler(webClient_UploadStringCompleted);                
        }
        catch (Exception ex)
            ...
            ...    
        }
    }

void webClient_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
{
    if (e.Error != null)
    {
            responseXml=e.Error.Message;
            MessageBox.Show(responseXml);
            return;
    }
    else
    {
            responseXml = e.Result;
    }
}
}

服务器是一个MVC4,基本的,带有我添加的api控制器,需要从移动设备获取发送的数据

作为一个测试,我只是返回一个我发送的字符串:

public class ReceiptDataServiceController : ApiController
{
    private ReceiptContext db = new ReceiptContext();
    ...
    ...

    public string GetDataFromMobile(string IncomingData) 
    {
        return IncomingData;
    }   
}
运行应用程序时,我通过responseXml收到一个错误: 远程服务器返回错误:NotFound

在IIS和azure上,服务器从各种浏览器返回正确答案,但不从移动仿真器返回正确答案


有什么建议吗?

如果您查看了的文档,您会注意到它使用POST方法发送数据。而在控制器中,您只实现了GET。为了你的

您必须使用other,它允许您指定要使用的HTTP谓词。您必须指定GET。您的客户端代码应转换为:

webClient.UploadStringAsync(uri,"GET", FullSTR);
对于像您这样的简单GET操作,最好的解决方案是实际使用:


无论如何,您的问题与Windows Azure无关,因此删除了标签。

谢谢,效果很好。我添加了azure标记,因为它在IIS上不起作用。
var fullUri = new Uri("http://pricequeryserver.azurewebsites.net/api/ReceiptDataService/?incomingdata=" + FullStr);
webClient.DownloadStringAsync(fullUri);