我们如何设置ContentRootPath和WebRootPath?

2024-01-23

当我们从 IIS 运行我们的应用程序时,我们最终得到以下 ContentRoot 和 WebRoot。

ContentRoot:  C:\MyApp\wwwroot
WebRoot:      C:\MyApp\wwwroot\wwwroot

这是我们的设置方式ContentRoot and WebRoot.

public class Startup
{
    private readonly IHostingEnvironment _hostingEnv;

    public Startup(IHostingEnvironment hostingEnv)
    {
        _hostingEnv = hostingEnv;
    }

    public void Configure(IApplicationBuilder app)
    {
        app.Run(context =>
        {
            // test output
            context.Response.WriteAsync(_hostingEnv.ContentRootPath + "\r\n");
            return context.Response.WriteAsync(_hostingEnv.WebRootPath + "\r\n");
        });
    }

    public static void Main(string[] args)
    {
        var contentRoot = Directory.GetCurrentDirectory();
        var webRoot = Path.Combine(contentRoot, "wwwroot");

        var host = new WebHostBuilder()
            .UseKestrel()
            .UseIISPlatformHandlerUrl()
            .UseContentRoot(contentRoot)  // set content root
            .UseWebRoot(webRoot)          // set web root
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }
}

从智能感知中我看到......

  • 内容根路径包含应用程序内容文件。
  • Web根路径包含可通过网络提供的内容文件。

我们如何使测试输出看起来像这样:

ContentRoot:  C:\MyApp\
WebRoot:      C:\MyApp\wwwroot\

虽然 RC2 文档仍在准备中,但以下是我在尝试将 RC2 之前的应用程序部署为 Azure Web App 时学到的知识:

  1. 目前还没有 Visual Studio 工具,因此必须通过 FTP 手动发布和部署该应用程序。对于发布,请使用:dotnet publish --configuration Release --output ./approot

  2. 如果通过 FTP 连接到 Azure,您可能会看到类似以下内容的内容:

  1. “approot”文件夹可以替换为已发布的文件夹(web.config 保留在 approot 中)。

  2. “approot”必须在 Azure 门户中配置为虚拟应用程序(默认为 site\wwwroot):

  1. 从 wwwroot 文件夹获取静态文件的最后一件事是,应修改 Startup.cs 文件以包含自定义 UseWebRoot 调用:
var currentDirectory = Directory.GetCurrentDirectory();

var host = new WebHostBuilder()
    .UseKestrel()
    .UseWebRoot(Path.Combine(currentDirectory, "..", "wwwroot"))
    .UseDefaultHostingConfiguration(args)
    .UseIISIntegration()
    .UseStartup<Startup>()
    .Build();

完成这些步骤后,您应该可以在 Azure 上运行 ASPNET Core pre-RC2 Web 应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们如何设置ContentRootPath和WebRootPath? 的相关文章

随机推荐

  • 将 PNG 图像保存到 WP7 的隔离存储

    这里有很多关于图像到隔离存储的问题 但我找不到适合我的情况的好的答案 所以我们开始吧 我正在取一个 png来自网络的图像 并将其另存为BitmapImage 目的 当它完成加载时 在BitmapImage ImageOpened事件 我想将
  • 是否可以在运行时跳过 Cucumber-JVM 的场景

    我想将标签 skiponchrome 添加到场景中 这应该在使用 Chrome 浏览器运行 Selenium 测试时跳过该场景 这样做的原因是因为某些场景在某些环境中有效 而在其他环境中无效 这甚至可能不是特定于浏览器测试的 并且可以应用于
  • 在 Python 中绘制多个图,但具有偏移范围

    我想绘制 e 和 nu 的函数 其中 e 是偏心率 nu 是真正的异常 我只看椭圆轨道所以0
  • 在C++中使用组合时如何决定类属性应该是指针还是值?

    请参阅此示例 大学的班级有一个主任和很多学生所以我的班级会是这样的 a class University Director d Student list 1000 or b class University Director d Stude
  • 将 pandas 的skipna 全局默认设置设置为 False

    对于某些 Pandas 函数 例如 sum cumsum 和 cumprod 有一个 Skipna 选项 默认设置为 True 这会给我带来问题 因为错误可能会默默地传播 所以我总是明确地将skipna设置为False sum df df
  • 使用 Json.Net 序列化 NameValueCollection 的自定义子类

    我有以下类 但尝试序列化为 Json 失败 class HL7 NameValueCollection public List
  • 角度,将范围传递给函数(将范围作为变量传递?)

    我试图将作用域传递给函数 但似乎无法让它正常工作 这就是我所拥有的 ng click clickFunction scope1 the function scope clickFunction function passedScope pa
  • `tf.set_random_seed()` 相当于种子操作?

    标题几乎说明了一切 你知道是否存在相当于tf set random seed 用于张量流中的操作种子 我试图在定义为两个不同图形的两个精确神经网络处初始化完全相同的权重 所以我想知道是否有一种方法可以为所有操作全局设置操作种子 而不必为每个
  • 将特殊字符作为消息发送;

    我正在运行 Kannel 将其用作 SMS 网关 但我刚刚意识到手机上没有收到应有的一些特殊符号 和 作为三角形发送 我该如何解决这个问题 可能是字符集问题 短信通常使用 GSM7 字符集接收 并且您提供的字符具有不同的 GSM7 数字代码
  • Conda:创建虚拟环境

    我正在尝试创建一个虚拟环境 我已按照两者的步骤进行操作Conda https conda io docs user guide tasks manage environments html and Medium https medium c
  • gulp-mocha 如何传​​递编译器标志?

    我正在尝试使用gulp mocha 模块 https github com sindresorhus gulp mocha但无法找出传递编译器标志的好方法 有没有办法将其包含在我的 gulp 任务中 也许在一个单独的管道中 从命令行运行摩卡
  • RequireJs 优化器忽略插件

    当我使用优化器时 我想忽略 require js 插件的使用 define css styles css 这总是给我这个错误Cannot read property normalize of undefined 我已将此选项设置为需要优化器
  • 您对 C# 缩小有什么建议吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要缩小一些 Silverlight cs 和 xmal 文件中的一些 C 代码 对于维护一个代码库和
  • Java 构建路径

    我有一个关于在代码运行时更改构建路径的快速问题 例如 我有一个类 它从互联网下载 jar 文件 然后将其放入与运行代码相同的目录中 如果可能的话 如何将 jar 加载到构建路径中以访问 jar 文件中的类 一些建议的修改 评论 去除jar
  • 如何判断Windows上是否安装了Java虚拟机?

    使用代码 如何确定 Windows 中是否安装了 Java VM 及其版本 假设您希望通过批处理文件以编程方式确定这一点 您可以使用reg exe工具 安装在windows system32 这个工具的烦人之处在于 无法让它仅返回退出代码
  • 编译curl后路径问题

    我使用以下命令克隆存储库后编译了curl buildconf configure with libssh2 make sudo make install 但是 在 sudo make install 之后 如果 I run curl V 我
  • Mysql 中的行级锁定

    我的表中有 5 行 1 到 5 我想要第 2 行锁定以进行某些更新 同时如果有人尝试更新第 4 行 那么他应该能够更新 我正在使用下面的代码尝试此操作 但我觉得它将锁定放在表级别而不是行级别 第一节 START TRANSACTION SE
  • iOS 导航栏项目图像大小

    我想定制我的NavigationBar按钮并使用我自己的图像 问题是尺寸应该是多少 我发现按钮大小应该是40 40 所以视网膜图像应该是80 80 这些是尺寸文档 https developer apple com ios human in
  • 如何使用 Pig 从列中解析 JSON 字符串

    我有 tsv 日志文件 其中一列由 json 字符串填充 我想用以下内容解析该列JsonLoader in a Pig脚本 我看到很多例子JsonLoader用于每行只有一个 json 字符串的情况 我还有其他专栏想要跳过 但我不知道该怎么
  • 我们如何设置ContentRootPath和WebRootPath?

    当我们从 IIS 运行我们的应用程序时 我们最终得到以下 ContentRoot 和 WebRoot ContentRoot C MyApp wwwroot WebRoot C MyApp wwwroot wwwroot 这是我们的设置方式