スタンドアロンで正常に動作する独自の Web サービスを作成しました。別のページからこの Web サービスを呼び出していますが、その時点で 500 Internal Server エラーが返されます。私はこのプロセスを初めて経験していますが、これが何を意味するのか、なぜこれが起こるのかわかりません。具体的なものは見つかりませんでしたが、Google で事前に検索すると、さまざまな回答が表示されます。
これが私の呼び出しコードです -
List<string> inputList = new List<string>();
inputList.Add("F");
inputList.Add("B");
List<string> resultList = new List<string>();
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost/Helpers/MyService.asmx");
httpWebRequest.Headers.Add("SOAPAction", "\"http://tempuri.org/GetOutput\"");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
JavaScriptSerializer serializer = new JavaScriptSerializer();
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = serializer.Serialize(inputList);
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); *****ERROR HERE
string responseText = String.Empty;
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
responseText = streamReader.ReadToEnd();
}
resultList = serializer.Deserialize<List<string>>(responseText);
ここに私のWebサービスコードがあります -
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class MyService: System.Web.Services.WebService
{
public string GetOutput(string jsonStr)
{
try
{
/*code to format jsonStr and send it along to another web service*/
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
string responseText = String.Empty;
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
responseText = streamReader.ReadToEnd();
}
//this obj has a head & body
ResponseObj response_obj = new ResponseObj();
response_obj = serializer.Deserialize<ResponseObj>(responseText);
List<string> Values = new List<string>();
if (response_obj.head.result)
return serializer.Serialize(response_obj.body);
return "";
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}