2013-02-19 2 views
0

Я отправляю XML-файл в веб-службы с помощью C#, но я получаю сообщение об ошибке, когда я запрашиваю ответ «Ошибка сервера - 500». Вы не можете получить доступ к системы. Любая помощь будет оценена.Публикация XML на веб-службу в .NET C# и получение ответа

protected void Page_Load(object sender, EventArgs e) 
    { 
     WebRequest req = null; 
     WebResponse rsp = null; 
     try 
     { 
      string fileName = Server.MapPath("~\\test.xml"); 
      string uri = "http://212.170.239.71/appservices/http/FrontendService"; 
      req = WebRequest.Create(uri); 
      //req.Proxy = WebProxy.GetDefaultProxy(); // Enable if using proxy 
      req.Credentials = new NetworkCredential("myusername", "mypassword"); 
      req.Method = "POST";  // Post method 
      req.ContentType = "text/xml";  // content type 
      // Wrap the request stream with a text-based writer 
      StreamWriter writer = new StreamWriter(req.GetRequestStream()); 
      // Write the XML text into the stream 
      writer.WriteLine(this.GetTextFromXMLFile(fileName)); 
      writer.Close(); 
      // Send the data to the webserver 
      rsp = req.GetResponse(); //I am getting error over here 
      StreamReader sr = new StreamReader(rsp.GetResponseStream()); 
      string result = sr.ReadToEnd(); 
      sr.Close(); 
      Response.Write(result); 

     } 
     catch (WebException webEx) 
     { 
      Response.Write(webEx.Message.ToString()); 
      Response.Write(webEx.StackTrace.ToString()); 
     } 
     catch (Exception ex) 
     { 
      Response.Write(ex.Message.ToString()); 
      Response.Write(ex.StackTrace.ToString()); 
     } 
     finally 
     { 
      if (req != null) req.GetRequestStream().Close(); 
      if (rsp != null) rsp.GetResponseStream().Close(); 
     } 
    } 
     //Function to read xml data from local system 
    /// <summary> 
    /// Read XML data from file 
    /// </summary> 
    /// <param name="file"></param> 
    /// <returns>returns file content in XML string format</returns> 
    private string GetTextFromXMLFile(string file) 
    { 
    StreamReader reader = new StreamReader(file); 
    string ret = reader.ReadToEnd(); 
    reader.Close(); 
    return ret; 
    } 
+0

Если это веб-служба, вы можете сгенерировать весь код на стороне клиента с помощью WSDL. Делает сопряжение с ним намного проще –

+0

Пожалуйста, помогите ????? – user1570210

+2

Можете ли вы щелкнуть правой кнопкой мыши по проекту в проводнике решений и нажать добавить ссылки на службы, поместить в конечную точку для своей службы, нажать «go», выбрать пространство имен и нажать «ОК»? – parKing

ответ

0

Ошибка 500 исходит от самой службы, подразумевая, что у вас нет необходимого доступа, сообщение выглядит он на заказ и вернулся авторами службы, так это выглядит, как вы ударить его и получить ответ, но, возможно, ваши полномочия неверны? Код выглядит правильно - первое, что я хотел бы проверить, это то, что имя пользователя и пароль, которые вы передаете, определенно верны.

+0

По-видимому, у меня нет собеседников, чтобы комментировать другие сообщения :), но в ответ на сообщения, связанные с сервисом: служба, которую вы пытаетесь нажать, кажется, является сервом Java, и добавить его как ссылку на проект в то, как они описывают, вам понадобится файл WSDL, который является файлом схемы, подобным xml, который сообщает .Net, как он может взаимодействовать с сервисом. Вам нужно будет получить WSDL от создателя сервлета, есть инструменты, которые будут генерировать WSDL для Java, но я не думаю, что они на 100% точны. Я бы проверял учетные данные, о которых я упоминал выше, поскольку это кажется проблемой для меня. – Crwydryn