我的MVC .net解决方案有两个项目:
实际的网络项目
这是我的所有模型,视图,控制器,属性等。一些控制器引用我的报告项目,其中包括使用SSRS和PDF生成的本地(例如非服务器报告)报告。
报告项目
这包括将连接到数据库并生成报告的代码。该项目还包括一个包含大量报告模板的文件夹。报告模板是“嵌入式资源”。我确认在部署时它们会显示在MVC应用程序的bin文件夹中。
问题是,当我从控制器中调用报告代码时,IIS会查找相对于IIS的报告文件。在报告代码中,我可能会说“report / confirmation.rdlc”。这在控制台应用程序中运行良好,但是一旦我使用IIS部署,该路径最终将成为“C:/ program files(x86)/ iis express / reports / confirmation.rdlc”,这不存在。
我也试过“〜/ report / confirmation.rdlc”来得到同样的结果。
我假设这意味着主文件夹(〜)实际上是IIS Express根目录。如何更改应用程序?
答案 0 :(得分:0)
尝试使用Server.MapPath("~/bin/reports/confirmation.rdlc")
代替。