我已經使用以下合同上傳了服務。遠程服務器返回了意外的響應:(502)Azure WCF中的錯誤網關
[ServiceContract]
public interface Service
{
[OperationContract]
void CreateThing(Thing thing);
[OperationContract]
List<Thing> RetrieveThings();
}
當我調用創建方法時,一切都很好,實例在數據庫中創建並且沒有錯誤。然而,當我取回的元素,我得到的錯誤:
The remote server returned an unexpected response: (502) Bad Gateway.
怪異的是,當列表爲空(在DB沒有元素),運行順利。更奇怪的是,針對數據庫的操作在服務器內部工作,並且如果我彙總元素的名稱並將其作爲字符串發送出去,或者打包到類的字符串屬性中,它也可以工作!
這是什麼樣子的,當它不工作:
public List<Thing> RetrieveThings()
{
List<Thing> output;
using (Context context = new Context())
output = context.Things.ToList();
return output;
}
這是個什麼樣子的時候,它的工作,如:
public List<Thing> RetrieveThings()
{
List<Thing> output = new List<Thing>();
using (Context context = new Context())
foreach (Thing thing in context.Things.ToList())
output.Add(new Thing {Id = thing.Id, Name = thing.Name});
return output;
}
它是什麼我做不同這裏(引擎蓋下,不自覺)?顯然我可以訪問數據庫,並且我有權限。我也可以讀出所有的信息。不過,由於某種原因,我必須創建我的對象的副本。我需要每一個都這樣做,而不是使用LINQ查詢。非常困惑...
我已經編輯了你的答案了一下。由於只有你和我說話,這個流程對於未來的讀者來說不會成爲問題。我建議我們刪除所有評論,因爲他們現在已經納入了問題/答案中,因爲他們應該這樣做。 –
此外,我接受它作爲答案,因爲它實際上確實解決了問題,爲有趣的鏈接+1。不幸的是,這是我爲學生創造的POC,我擔心現在創造自己的屬性比他們的舒適區略高。儘管如此,答覆是正確的和有幫助的(至少對我來說,嘿嘿)。 –
太棒了!我很高興它解決了這些問題。隊友的歡呼聲! –