2017-07-07 127 views
4

我使用:https://github.com/Buildstarted/Javascript.ViewEngines作为额外的Viewengine。Asp.Net MVC与Javascript Viewmationine服务器渲染 - 服务器上的BuildError

这样我可以服务器端呈现JavaScript,反应,角,......(之前的工作)

为此,我需要在根目录下的DLL夫妇(这是奇怪的,但总是做了这样的)

的文件有:

  • ClearScriptV8-32.dll
  • ClearScriptV8-64.dll

  • V8-ia32.dll

  • V8-x64.dll

当本地运行它(2台dev的计算机)。一切运行良好。当我发布到Azure或我自己的服务器上的“Web Deploy”时,问题就开始了。

我自己的发布给了我这样的:

无法加载文件或程序集“ClearScriptV8-32”或它的一个依赖。试图加载格式不正确的程序。

Azure也:无法加载文件或程序集'ClearScriptV8-64'或其依赖项之一。试图加载格式不正确的程序。

+1

删除ClearScriptV8-32.dll并重试。 –

+0

您的部署声音设置为仅64位,因此无法加载32位库。 https://blogs.msdn.microsoft.com/avkashchauhan/2011/07/14/windows-azure-web-role-how-to-enable-32bit-application-mode-in-iis-application-pool-using- startup-task/ – xaxxon

+0

我希望发布之后ClearScriptV8-32.dll和V8-ia32.dll将会在你的bin文件夹中。所以请从bin文件夹中删除并重试。如果您仍然需要使用32位应用程序模式,那么您可以使用https://blogs.msdn.microsoft.com/avkashchauhan/2011/07/14/windows-azure-web-role-how-to-enable-32bit -application-mode-in-iis-application-pool-using-startup-task/ – dotnetstep

回答

1

听起来像你需要启用32位应用程序,因为这是它无法加载的类型的库。

https://blogs.msdn.microsoft.com/avkashchauhan/2011/07/14/windows-azure-web-role-how-to-enable-32bit-application-mode-in-iis-application-pool-using-startup-task/

从该链接,建立这样一个启动文件:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.enable32BitAppOnWin64:true 

然后更新您的窗口Azure的服务定义文件,包括启动任务

<Startup> 
<Task commandLine="Startup.cmd" executionContext="Elevated" taskType="simple"> 
</Task> 
</Startup> 

确保Startup.cmd文件是您的Web角色应用程序的一部分,并将其属性设置为“Copy Local to True”

+0

我已经尝试过在我的IIS池使32位应用程序,但这并没有帮助。我在文件夹+ bin中都有x64和x32的库。 在IIS中启用32位应用程序是我尝试的第一件事,但它似乎并没有成为问题。 – NicoJuicy

+1

你应该把它放在你的问题中,这样人们不会浪费时间 – xaxxon