2015-05-10 56 views
0

關於這個主題,我以前打開:實體框架通過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對象。

myRequestWCFDataContract

[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; 
     } 
} 

_StreamerHostProgram類的靜態成員。

當我嘗試通過控制檯/應用程序託管的WCF rest服務使用EF時。 當我試圖做到這一點 - 客戶總是得到400 Bad Request迴應。

另一件事 - 我在數據庫模型的解決方案中創建了一個新項目,WCF服務是另一個項目,所以我在服務項目中添加了數據庫模型項目的引用。爲了達到這個目的,我必須安裝並添加對Nuget Entityframe工作包的引用。

任何解決方案?

謝謝

+0

請發佈您的代碼。這將幫助我們幫你 – MickyD

+0

請輸入我添加的鏈接,這是我幾小時前打開的SO線程,結論讓我打開了這個新線程... – sharonooo

+0

嗯。沒有控制檯客戶端代碼也沒有在這裏雖然 – MickyD

回答

-1

好吧,所以我解決了這個問題。

我只在服務項目(我在數據庫項目中使用了內置庫)安裝了NuGet實體框架庫。 我已經在數據庫項目上安裝了NuGet實體框架+將connectionString添加到服務App.config一切似乎都沒有問題。