0
先週私は石鹸を使用して複数の行を返すasmx Webサービスを作成しました。WCF - 複数のレコードを返します
私は今WCFに移動し、同じことをしたいと思います。私は次のことをやっている私のASMX Webサービスで
..
public class sample
{
public string Id { get; set; }
public string Name { get; set; }
public string NameOfFile { get; set; }
//public int Distance { get; set; }
}
[WebMethod]
public sample[] Test(int count, float lat, float lng)
{
DataTable dt = new Gallery().DisplayNearestByLatLong(count, lat, lng);
var samples = new List<sample>();
foreach (DataRow item in dt.Rows)
{
var s = new sample();
s.Id = item[0].ToString();
s.Name = item[1].ToString();
s.NameOfFile = item[2].ToString();
//s.Distance = (int)item[3];
samples.Add(s);
}
return samples.ToArray();
}
このコードは素晴らしい作品が、今、私は同じですが、WCFを使用してやりたいです。
私の現在のWCFファイルが(私はチュートリアルをコピーしますが、セットアップ、私は必要だと思うデータコントラクトを(持っている?))このようになり
GalleryWebService.cs
public class GalleryWebService : IGalleryWebService
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
return composite;
}
public CompositeType GetTestData()
{
return new CompositeType();
}
}
IGalleryWebService.cs
[ServiceContract]
public interface IGalleryWebService
{
[OperationContract]
string GetData(int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "test/random")]
CompositeType GetTestData();
}
[DataContract]
public class CompositeType
{
[DataMember]
string _id;
public string Id
{
get { return _id; }
set { _id = value; }
}
[DataMember]
string _name = "Hello";
public string Name
{
get { return _name; }
set { _name = value; }
}
[DataMember]
string _nameoffile = "Hello";
public string NameOfFile
{
get { return _nameoffile; }
set { _nameoffile = value; }
}
}
それをやり遂げる最善の方法は何ですか?あなたの助けが大変ありがとう!
ありがとうございます。
[DataContract]
public class sample
{
[DataMember]
public string Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string NameOfFile { get; set; }
}
DataMember
属性がデフォルトで設定されていないので、彼らは何とか義務です:
O.k、私はそれを実装しましたが、私はそれを私のライブIIS Webサーバーに置くと動作しません。これは、私がDataTableを入れたときだけです。それについてのアイデアはありますか? – tmutton
私はエラーを取得しています。IISは認証スキーム「IntegratedWindowsAuthentication、Anonymous」を指定しましたが、バインディングはちょうど1つの認証スキームの仕様しかサポートしていません。有効な認証方式は、ダイジェスト、ネゴシエート、NTLM、基本、または匿名です。単一の認証方式のみが使用されるようにIIS設定を変更します。 – tmutton
コントロールパネル - >管理ツール - > IIS - > Webサイトまたはアプリケーションを選択 - >認証アイコンをダブルクリック - >統合Windows認証を無効にする – vorrtex