Razor View Engine 是否适用于 Mono?

2024-05-13

我尝试搜索了一下,但没有找到答案。 Razor View Engine 在 Mono 中工作吗?


是的,它确实。我让它在 Linux 上与 mono 一起工作。

You need mono 2.10.2+ from the stable sources from
http://ftp.novell.com/pub/mono/sources-stable/ http://ftp.novell.com/pub/mono/sources-stable/
http://download.mono-project.com/sources/mono/ http://download.mono-project.com/sources/mono/

然后,您需要将这些程序集本地复制到应用程序的 bin 目录中(从 Windows 上的 Visual Studio 获取它们):

系统.Web.Mvc.dll
系统.Web.Razor.dll
系统.Web.WebPages.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.Razor.dll

然后,您可能必须消除可能犯下的以下错误:

Error: Storage scopes cannot be created when _AppStart is executing.
Cause: Microsoft.Web.Infrastructure.dll was localcopied to the bin directory.
Resolution: Delete Microsoft.Web.Infrastructure.dll and use the mono version.

Error: Invalid IL code in System.Web.Handlers.ScriptModule:.ctor (): method body is empty.
Cause: System.Web.Extensions.dll somehow gets localcopied to the bin directory.
Resolution: Delete System.Web.Extensions.dll and use the mono version.


Error: The classes in the module cannot be loaded. Description: HTTP 500. Error processing request.
Cause: System.Web.WebPages.Administration.dll was localcopied to the bin directory.
Resolution: Delete System.Web.WebPages.Administration.dll and unreference it


Error: Could not load type
'System.Web.WebPages.Razor.RazorBuildProvider' from assembly 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Description: HTTP 500. Error processing request.
Cause: System.Web.Razor.dll is corrupt or missing (or x64 instead of x32 or vice-versa) ...
Resolution: Get an uncorrupted version of System.Web.Razor.dll and localcopy to the bin directory

Edit
从 mono 2.12 / MonoDevelop 2.8 开始,所有这些都不再是必要的了。

请注意,在 2.10 (Ubuntu 11.10) 上,需要 localcopySystem.Web.DynamicData.dll同样,否则您会得到一个仅在 App_Start 上发生的错误(如果您不这样做,则在第一次调用页面时您会收到 YSOD,但仅是第一次,因为只有那时 App_Start 才会被调用。)。

Note
对于带有 ASP.NET MVC4 的单声道 3.0+: 安装脚本中有一个“错误”。 或者更确切地说是不完整。

mod-mono、fastcgi-mono-server4 和 xsp4 将无法正常工作。
例如:fastcgi-mono-server4 为您提供以下调试输出:

[error] 3384#0: *101 upstream sent unexpected FastCGI record: 3 while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8000"

这是因为安装了mono3后,它使用的是framework 4.5,但是xsp、fastcgi-mono-server4和mod-mono不在4.5 GAC中,只有4.0 gac中。
要解决此问题,请使用以下 bash 脚本:

#!/bin/bash

# Your mono directory
#PREFIX=/usr
PREFIX=/opt/mono/3.0.3


FILES=('mod-mono-server4'
       'fastcgi-mono-server4'
       'xsp4')

cd $PREFIX/lib/mono/4.0

for file in "${FILES[@]}"
do
   cp "$file.exe" ../4.5
done


cd $PREFIX/bin

for file in "${FILES[@]}"
do
  sed -ie 's|mono/4.0|mono/4.5|g' $file
done

如果您通过 FastCGI(例如 nginx)使用它,您还需要修复 TransmitFile 的 chunked_encoding bug
为什么图像开头有不需要的额外字节? https://stackoverflow.com/questions/14662795/why-do-i-have-unwanted-extra-bytes-at-the-beginning-of-image/14671753#14671753(在 Mono 3.2.3 中已修复)

PS:
您可以从这里获取 3.x 的 .debs:
https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/ https://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/或者自己从 github 编译它们在 Ubuntu/Debian 中安装 Mono 3.x https://stackoverflow.com/questions/13365158/installing-mono-3-0或者像这样从稳定的来源http://ubuntuforums.org/showthread.php?t=1591370 http://ubuntuforums.org/showthread.php?t=1591370

2015

您现在可以使用Xamarin 提供的包 http://www.mono-project.com/docs/getting-started/install/linux/#debian-ubuntu-and-derivatives

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update

如果您需要各种最新功能,您还可以获取CI 包(每晚构建,可以这么说) http://www.mono-project.com/docs/getting-started/install/linux/ci-packages/,如果您需要最新(或几乎最新)版本

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://jenkins.mono-project.com/repo/debian sid main" | sudo tee /etc/apt/sources.list.d/mono-jenkins.list
sudo apt-get update
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Razor View Engine 是否适用于 Mono? 的相关文章

  • 使用 ASP.NET 开发服务器测试多个域

    我正在开发一个 Web 应用程序 该应用程序将根据用于访问该网站的域名动态更改其内容 多个域将指向同一个应用程序 我希望使用以下代码 或类似的代码 来检测域名并执行自定义 string theDomainName Request Url H
  • appSettings 与 applicationSettings。应用程序设置已过时? [复制]

    这个问题在这里已经有答案了 我对在 web config 中保存设置的两种方法有一些疑问 应用程序设置 查看 web config
  • 调用 Web 服务时“请求失败,响应为空”

    从 aspx 页面调用服务器中托管的 Web 服务时 收到类似 请求失败 响应为空 的错误 我的页面中的代码 try HttpWebRequest request1 HttpWebRequest WebRequest Create http
  • ASP.net,将对象添加到会话变量

    我正在尝试跨回发将对象添加到会话变量中 我的代码类似于以下内容 Supply sup Supplies GetSupply supplyItemID Session CartObjects sup 现在 编译器会抛出一个错误 指出 运算符不
  • Windows 共享主机 - 自定义计划任务

    我有一个 Windows 共享主机 我需要每天运行一些预定的 C 可执行文件来创建站点地图 发送新闻通讯等 提供商告诉我 出于安全原因 我无法运行可执行文件 我能做什么 提供商建议我购买 VPS 但认为仅仅为了运行一些计划任务而花更多钱是没
  • ACT by Sage 与 asp.net 集成 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 想知道这里是否有人可以提供帮助 我被要求开发一个 ASP Net 应用程序 它将直接连接 存储和检索 到 ACT 数据库已经正常运行
  • 如何从用户控件引用母版页?

    我正在寻找一种方法 最好 从使用母版页的内容页中找到的用户控件强类型母版页 遗憾的是 您不能在用户控件中使用它 我试图从用户控件访问母版页的属性 而不必将该属性从母版页传递到内容页再传递给用户控件 因为多个内容页使用相同的用户控件 一处改变
  • 如何向 ASP.NET 控件添加自定义属性

    我有一个 ASP NET 控件说复选框
  • IClaimsTransformation 未触发

    我尝试过实施一个IClaimsTransformation我在 ASP NET CORE 3 1 Web 应用程序中找到的类 public class ClaimsTransformer IClaimsTransformation publ
  • 存储库模式和 Linq to sql

    我正在尝试使用角色表 用户表和具有用户 ID 角色 ID 的外部参照表来实现用户身份验证和授权 为了实现通用存储库来更新角色 插入角色 添加用户 将用户添加到角色 更新用户 更新用户角色 验证用户 添加用户会话进行审核等 我是否需要为每个存
  • 带分页的自定义数据表

    我正在使用我的自定义DataTable as a DataSource to my ListView 现在 我面临的问题是Paging不管用 我想做的是当我点击页面时1 2等等 我应该一次只能获取 10 行 我的意思是 当页面加载时 我只想
  • 在 SignOut() 之后使用浏览器的后退按钮允许访问安全页面 (ASP.NET MVC)

    我有一个 MVC 应用程序 它使用 Authorize 来保护私有位 当我选择 SignOut URL 时 它会将我注销 但如果我点击浏览器上的后退按钮 它会转到安全页面 甚至允许我使用该表单 该操作发生 然后显示我已退出 问题是它执行安全
  • 当结合 asp.net 动态数据和 MVC MetaModel.Visible 包含 Scaffold==false 的表时

    我通过创建一个新的 DD 项目并添加 MVC 内容 引用 路由 使用等 来组合 MVC 和 DD default aspx 来自 DD 上的表列表将显示所有表 包括带有 ScaffoldTable false 的 Scaffold true
  • 除了第一列之外,Gridview 行可点击?

    我使用以下代码使 gridview 的整行可单击 protected void gridMSDS RowDataBound object sender GridViewRowEventArgs e if e Row RowType Data
  • 使用 C# 将一些数据插入到多个表中

    我试图一次将一些数据插入到 2 个表中 但我的代码遇到的问题是 我一次只能插入一个表 如果我注释掉第一个插入语句 那么第二个插入将起作用 反之亦然 这是我的代码 SqlCommand cmd new SqlCommand select Na
  • 静默地将 api 资源移动到另一个 url

    我已经用 WepApi 2 编写的 api 与主网站紧密结合 我决定将其与另一个网络应用程序解耦 以使事情更加隔离 我遵循了这样的步骤 将所有 API 控制器提取到另一个项目 创建属性以将当前使用旧 URL 的所有用户重定向到新 URL 由
  • 我可以安全地删除临时 ASP.Net 文件夹的内容吗?

    每当我运行时 我的应用程序都可以正常工作VS 2010 当我将其上传到服务器并运行时IIS它给编译器错误 CS0433 c Windows Microsoft NET Framework v4 0 30319 Temporary ASP N
  • 带有 ASP.NET 按钮回发的 jQuery UI 对话框

    我的 ASP NET 页面上有一个运行良好的 jQuery UI 对话框 jQuery function jQuery dialog dialog draggable true resizable true show Transfer hi
  • ASP.NET - Crystal Report Viewer 打印按钮在 ASP.NET 中不起作用

    我正在使用 Visual Studio 2008 但我遇到了水晶报告问题 当我单击打印按钮时 它会将我带到弹出窗口 但未找到页面 弹出的网址是 http localhost aspnet client System Web 2 0 5072
  • 缺少 ASP.NET 5 模板

    我正在遵循此设置教程 https docs asp net en latest tutorials your first aspnet application html create a new asp net 5 project http

随机推荐