4

我正在使用带有 Razor 视图的 Nancy 0.14.1.0。只要我在 VS 2010 中使用内部网络服务器,一切都会好起来的。现在我确实将这些东西部署到了运行 IIS 6 的网络服务器上。路线是

       Get["/api/v1/admin/clients"] = parameters => {
            return View["Admin/view", new DataAccessLayer(Context).admin_get_clients()];
        };

它返回一个客户列表(在这里无关紧要)。

服务器上的目录结构是

斌
内容
共享
   |--- _Layout.cshtml
意见
   |--- 管理员
         |--- 视图.cshtml

我抓住的例外是

Nancy.ViewEngines.ViewNotFoundException:无法找到视图“Admin/view”当前可用的视图引擎扩展:sshtml、html、htm 检查的位置:,,,,views/api/Admin/view,api/Admin/view,views/Admin /view,Admin/view 根路径:C:\Inetpub\Websites\Test\api\ 

我有点担心的是“可用的视图引擎扩展”条目:我在这里缺少 cshtml ......虽然我猜我的 web.config 包含正确的条目:

<compilation debug="true" targetFramework="4.0">
  <buildProviders>
    <add extension=".cshtml" type="Nancy.ViewEngines.Razor.BuildProviders.NancyCSharpRazorBuildProvider, Nancy.ViewEngines.Razor.BuildProviders" />
    <add extension=".vbhtml" type="Nancy.ViewEngines.Razor.BuildProviders.NancyVisualBasicRazorBuildProvider, Nancy.ViewEngines.Razor.BuildProviders" />
  </buildProviders>


</compilation>

背后的南希模块工作正常:我添加了路线

        Get["/api/v1/admin/clients/{id}"] = parameters => {
            return "Hello";
        };

并得到“你好”...

有什么提示吗?

4

4 回答 4

2

您尚未部署 Nancy razor 包,或者由于某种原因无法加载它(可能缺少依赖项),这就是它没有列出文件类型的原因。

于 2013-01-16T11:51:48.793 回答
1

关闭,但 Nancy 剃须刀包装并没有丢失。部署了 Nancy razor 软件包。唯一缺少的是 System.Razor.dll。我也部署了它并完成了:)

于 2013-01-16T13:47:59.740 回答
0

我发现 Nancy 模板项目仍然存在这个问题。您需要删除并重新添加 Nancy nuget 引用。启用包还原似乎还不够。

于 2014-02-12T08:04:45.120 回答
0

我从一个引用了单独的 DLL“web”项目的控制台应用程序中遇到了自托管 Nancy 的问题。尽管控制台项目引用了 Web 项目,并且 Web 项目引用了适当的 razor 库,但 Razor DLL 并未被复制到输出文件夹。

由于 razor DLL 是动态加载的,因此它们没有被复制到控制台的输出文件夹中。更多关于此处潜在问题的讨论:“复制本地”是否可传递项目引用?

于 2015-05-21T17:44:32.253 回答