Web services 需要Windows Phone 7图像上载到Web服务的帮助吗

Web services 需要Windows Phone 7图像上载到Web服务的帮助吗,web-services,image,post,windows-phone-7,upload,Web Services,Image,Post,Windows Phone 7,Upload,基本上,我有一个RESTWebService,它在pc上自托管,我想从Windows7手机上传一个图像。很多对我来说都是新的,所以我一直在学习。我的问题是我无法将图像上载到Web服务。 下面是我正在使用的代码 我正在测试wifi连接,它已启动并正常工作。 我正在使用Fiddler,我可以看到手机/pc上的请求 使用仿真器,我可以让它工作,我得到了200个代码,可以将图像写入磁盘 当我试着用实际设备发帖时,我得到一个400响应码 我能得到的任何帮助都会很好。我一直在努力解决这个问题 //webse

基本上,我有一个RESTWebService,它在pc上自托管,我想从Windows7手机上传一个图像。很多对我来说都是新的,所以我一直在学习。我的问题是我无法将图像上载到Web服务。 下面是我正在使用的代码

我正在测试wifi连接,它已启动并正常工作。 我正在使用Fiddler,我可以看到手机/pc上的请求

使用仿真器,我可以让它工作,我得到了200个代码,可以将图像写入磁盘

当我试着用实际设备发帖时,我得到一个400响应码

我能得到的任何帮助都会很好。我一直在努力解决这个问题

//webserice code
[ServiceContract]

public interface ItestService
{
  [OperationContract, WebInvoke(Method = "POST", UriTemplate = "PostTest/{targetID}")]
  string PostTest(string targetID, Stream image);
}

//from service def

public string PostTest(string targetID, System.IO.Stream image)
{
   string id = WriteImageToDisk(image, targetID);
   return id;
}

//phone code
private void SendImage1()
{
 string address = ServiceURI + "/PostTest";
 Uri baseAddress = new Uri(address);
 var req = HttpWebRequest.Create(baseAddress) as HttpWebRequest;
 req.Method = "POST";
 req.ContentType = "image/jpeg";
 req.BeginGetRequestStream(SendImagePost_Callback, req);
}

private void SendImagePost_Callback(IAsyncResult result)
{
  try
  {
     var req = result.AsyncState as HttpWebRequest;

     using (var strm = req.EndGetRequestStream(result))
     {
        var bytesToWrite = RawContent();
        strm.Write(bytesToWrite, 0, bytesToWrite.Length);
        strm.Flush();
     }

     req.BeginGetResponse(SendImageResponce_Callback, req);
  }
  catch (Exception ex)
  {
     DisplayMessage(this.txtError, ex.Message);
  }

}

 private void SendImageResponce_Callback(IAsyncResult result)
 {      
    try
    {
       var req = result.AsyncState as HttpWebRequest;
       var strm = resp.GetResponseStream();
       var reader = new StreamReader(strm);

       DataContractSerializer ser = new DataContractSerializer(typeof(string));
       string id = ser.ReadObject(strm).ToString();
       DisplayMessage(this.txtAction, id);   
    }
    catch (Exception ex)
    {
       DisplayMessage(this.txtError, ex.Message);
    }
 }

听起来您有一个连接问题需要解决。也许可以尝试通过IP访问您的本地服务,并检查是否存在防火墙拦截。

Hi,可以澄清它工作/不工作时的情况吗?您说过它在wifi上工作,而不是在可能存在相同条件的设备上。谢谢您的回复。当应用程序通过模拟器进行测试时,一切正常。我可以拨打GET电话并将图像从手机上传到服务。但是,当我将应用程序部署到一个设备上并对其进行测试时,image post不起作用。在设备上测试应用程序,我可以验证我是否有连接。我可以对该服务进行所有GET调用,但当我尝试将设备中的映像发布到该服务时失败。根据我的测试,我没有任何连接问题。我已经测试了有防火墙和没有防火墙。该手机应用程序向该服务打了几个GET电话,包括一个获取大型图像文件的电话。我打了一个POST电话,发送了一条大的短信,这一切都很好。我遇到的唯一问题是当我试图从手机设备上传图像时。