卐兜兜飞卍 2015-04-28 06:31 采纳率: 0%
浏览 689

IIS中MVC4应用程序是如何启动的?

问个问题,想MVC4 Web Application这种应用程序发布到IIS的时候根本不需要设置启动的默认页面,如index.asp,default.html等,那么IIS是如何接收用户请求并返回对应相应页面的呢,或者说IIS也有读取Global.asax的能力?

Sorry,我是新手,好像没有C币,C币哪里来的?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 18:26
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在IIS上运行MVC4应用的一个简单方法是使用ASP.NET Core Web API。这将允许您使用HTTP GET和POST操作来处理客户端请求。

    首先,在Web应用程序的根目录下创建一个名为Startup.cs的新文件,并添加以下代码:

    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    
    namespace MVC4Application
    {
        public class Startup
        {
            public void ConfigureServices(IServiceCollection services)
            {
                // Add framework services.
            }
    
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
                
                app.UseRouting();
    
                app.UseEndpoints(endpoints =>
                {
                    endpoints.MapControllers();
                });
            }
        }
    }
    

    然后,为您的项目生成一个.csproj文件(如果还没有的话)。接下来,打开这个文件并替换其内容如下:

    <Project Sdk="Microsoft.NET.Sdk.Web">
      <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.0" />
        <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="5.0.0" />
        <PackageReference Include="Microsoft.AspNetCore.Mvc.RazorPages" Version="5.0.0" />
        <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="5.0.0" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.2" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.2" />
        <PackageReference Include="Microsoft.IdentityModel.Tokens" Version="6.15.2" />
      </ItemGroup>
      
      <ProjectTools>
        <SdkVersion>17.0.0</SdkVersion>
      </ProjectTools>
    
      <PropertyGroup>
        <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
        <PublishSingleFile>true</PublishSingleFile>
      </PropertyGroup>
    </Project>
    

    现在,您可以构建、部署并运行您的应用程序了。这将在本地计算机上运行,而不是通过IIS服务器。如果您希望将应用程序部署到IIS,请按照以下步骤进行操作:

    1. 打开命令提示符或PowerShell。
    2. 指定要安装项目的路径:cd C:\Users\YourUsername\Desktop\MVC4Application
    3. 使用NuGet Package Manager安装所需的依赖项:dotnet add package Microsoft.AspNetCore.Server.IISIntegration
    4. 在Web应用程序根目录下创建一个新的文件夹bin并将Startup.cs移动到其中。
    5. 编辑bin文件夹中的Startup.cs,删除注释并在其中添加以下代码:
    using System;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Logging;
    using Microsoft.Extensions.Options;
    
    namespace Mvc4Application
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                var builder = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
    
                builder.AddEnvironmentVariables();
    
                var configuration = builder.Build();
    
                Console.WriteLine($"Hello MVC4Application! {configuration["message"]}");
    
                var host = CreateHostBuilder(args).Build();
    
                using (var scope = host.Services.CreateScope())
                {
                    var services = scope.ServiceProvider;
                    try
                    {
                        var app = services.GetRequiredService<Startup>();
                        app.Configure(host, configuration);
                        app.Run();
                    }
                    catch (Exception ex)
                    {
                        Console.Error.WriteLine(ex.Message);
                        throw;
                    }
                }
            }
    
            public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>());
        }
    }
    
    1. 确保已经配置了正确的环境变量,以便正确加载配置文件。

    这样,您的应用程序就可以在本地计算机上运行了,而无需通过IIS服务器。当您想要将其部署到IIS时,只需确保在IIS管理器中正确配置应用程序即可。

    评论

报告相同问题?