0
지난 주에 비누를 사용하여 여러 행을 반환하는 asmx 웹 서비스를 만들었습니다.WCF - 여러 레코드 반환
이제 WCF로 이동하고 같은 작업을 수행하려고합니다. 내 ASMX 웹 서비스에서
나는 다음과 같은 ..
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 웹 서버에 넣을 때 작동하지 않습니다. DataTable을 넣을 때만 가능합니다. 그것에 대한 아이디어가 있습니까? – tmutton
IIS 인증 스키마 'IntegratedWindowsAuthentication, Anonymous'가 지정되었지만 바인딩은 정확히 하나의 인증 스키마 만 지원합니다. 유효한 인증 구성표는 다이제스트, 협상, NTLM, 기본 또는 익명입니다. 단일 인증 체계 만 사용되도록 IIS 설정을 변경하십시오. – tmutton
제어판 -> 관리 도구 -> IIS -> 웹 사이트 또는 응용 프로그램 선택 -> 인증 아이콘을 두 번 클릭 -> 통합 Windows 인증 비활성화 – vorrtex