2014-05-14 174 views
2

我想擴展默認的webrole模板。我添加了一個新的實體模型併爲其創建了一個框架框架。當嘗試加載索引頁時,會顯示服務器錯誤。缺少編譯錯誤Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint

「類型'Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint'在未引用的程序集中定義,您必須添加對程序集'Microsoft.WindowsAzure.ServiceRuntime,Version = 2.3.0.0,Culture = neutral,公鑰= 31bf3856ad364e35' 「。

我有雙重檢查,WebRole包含此引用,它確實。我可以通過將此引用Copy Local屬性設置爲true來解決此錯誤。

如果我這樣做,錯誤修改

這兩個錯誤自Index.cshtml文件扔在了「之類的名字‘模式’不存在‘WebRole.WebRole’類型的存在」,specificially行:

公共類_Page_Views_BankAccount_Index_cshtml:System.Web.Mvc.WebViewPage<IEnumerable<WebRole.Models.BankAccount>> {

是什麼原因造成的?

回答

2

您在視圖編輯中缺少引用。

視圖編譯器使用一組不同的引用,並且使你的模型的工作,你需要在你的web.config

添加引用例如:

<configuration> 
    <system.web> 
    <assemblies> 
     <add assembly="YourAssembly, Version=4.0.0.0, Culture=neutral, PublicKeyToken=TOKENKEY" /> 
    </assemblies> 
    </system.web> 
</configuration> 
+1

謝謝你,讓我走上正軌。默認模板已經創建了命名空間WebRole和一個名爲WebRole的類。該視圖混淆了WebRole.Models作爲類的屬性,而不是程序集中的類。通過將BankAccount移到另一個名稱空間,找到了參考。感謝您的幫助 – Venatu

2

我知道這是老但可能會幫助其他人。

當使用名稱WebRole(將項目放入與Microsoft.WindowsAzure.ServiceRuntime dll相同的名稱空間)創建Web項目時,由於Windows Azure Cloud Service的默認項目中存在衝突而發生此錯誤。 要修復有兩種簡單的方式:

將這段代碼

@model WebRole.Models.RegisterViewModel 

,並添加using語句和你的模型沒有namesapce

@using WebRole.Models 
@model RegisterViewModel 

或替代一個可以在添加命名空間web.config裏面的views文件夾(不是根目錄下的)

<pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
     ----- 
     <add namespace="WebRole.Models" /> 
    </namespaces> 
</pages> 

並在您的意見只是取代現有的代碼

@model RegisterViewModel 

希望它有幫助。

1

是否安裝了正確版本的Azure Tools?我知道,當我錯過Azure Tools庫時,我只會遇到這個錯誤。