關於這個主題,我以前打開:實體框架通過WCF服務(IIS沒有)
Storing WCF rest request data with SQL Server stored procedure
我有一個簡單的界面,在我WCF
一個方法服務,得到了myRequest
參數
public interface IService
{
[OperationContract]
string MyOperation(myRequest request);
}
當我從客戶端發佈數據時,內容類型爲application/json
,所以請求主體自動將其解序列化爲myRequest
對象。
myRequest
是WCF
DataContract
:
[DataContract]
public class myRequest
{
string id;
string Name;
[DataMember]
public string Name { get; set; }
[DataMember]
public string Id { get; set; }
}
public string MyOperation(myRequest request)
{
if (request != null) {
Contact contact = new Contact();
contact.Id = Int32.Parse(request.Id);
contact.DisplayName = request.Name;
ContentContext db = new ContentContext();
db.Contacts.Add(contact);
db.SaveChanges();
return "ok";
}
SetResponseHttpStatus(HttpStatusCode.InternalServerError);
return null;
}
而且finaly,託管服務:
public class ProgramBL {
public static void StartServer()
{
ServiceHost streamer = new ServiceHost(typeof(DataStreaming.StreamService));
streamer.Open();
Console.WriteLine("Service up and running at:");
foreach (var ea in streamer.Description.Endpoints)
{
Console.WriteLine(ea.Address);
}
Program._StreamerHost = streamer;
}
}
_StreamerHost
其Program
類的靜態成員。
當我嘗試通過控制檯/應用程序託管的WCF rest
服務使用EF時。 當我試圖做到這一點 - 客戶總是得到400 Bad Request
迴應。
另一件事 - 我在數據庫模型的解決方案中創建了一個新項目,WCF
服務是另一個項目,所以我在服務項目中添加了數據庫模型項目的引用。爲了達到這個目的,我必須安裝並添加對Nuget Entityframe工作包的引用。
任何解決方案?
謝謝
請發佈您的代碼。這將幫助我們幫你 – MickyD
請輸入我添加的鏈接,這是我幾小時前打開的SO線程,結論讓我打開了這個新線程... – sharonooo
嗯。沒有控制檯客戶端代碼也沒有在這裏雖然 – MickyD