初めてプロジェクトとしてWCFWebサービスの開発を依頼されました。Webサービスはかなり単純で、JSONオブジェクトを返すだけです。問題は、ブラウザ(chrome、f irefox)が、ブラウザを使用してサービスをテストしようとしているときに空白のページを表示することです。WcfTestClientはJSON出力を正しく表示します。
添付されているのは私のコードとWeb.configです
だから私は何が間違っているのですか?前もって感謝します。
Web.config:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<services>
<service name="WcfService3.Service1" behaviorConfiguration="WcfService3.Service1Behavior">
<!-- Service Endpoints -->
<endpoint address="" binding="wsHttpBinding" contract="WcfService3.IService1">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WcfService3.Service1Behavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
IService1.cs:
namespace WcfService3
{
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(string username, string password);
}
[DataContract]
public class Data
{
[DataMember]
public string Username { get; set; }
[DataMember]
public string Password { get; set; }
}
}
Service1.svc.cs:
namespace WcfService3
{
public class Service1 : IService1
{
[WebInvoke(Method = "GET",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "data/{user}/{pass}")]
public string GetData(string user, string pass)
{
Data UserData = new Data()
{
Username = user,
Password = pass
};
MemoryStream stream = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Data));
ser.WriteObject(stream, UserData);
string json = Encoding.Default.GetString(stream.ToArray());
return json;
}
}
}