2015-05-18 19 views
24

Tôi có một ứng dụng ASP.NET MVC đầy đủ (.NET Core, ASP.NET MVC 6) chạy tốt trong Visual Studio (sử dụng IISExpress).Có thể tự lưu trữ ứng dụng ASP.NET Core không có IIS (không phải Web API) không?

Bây giờ tôi muốn có một ứng dụng giao diện điều khiển có ứng dụng MVC và lưu trữ nó (tự lưu trữ).

+3

Xem hướng dẫn ở cuối bài viết này: http://www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6 Các bước tương tự được áp dụng để mvc và api web như họ là cùng một loại dự án trong asp.net 5 – rdans

+0

khi tôi sử dụng nghe web để lưu trữ ứng dụng, tôi có ngoại lệ sau đây. System.MissingMethodException: Không tìm thấy phương thức: 'Int32 System.Runtime.InteropSe rvices.Marshal.SizeOf (!! 0)'. tại Microsoft.Net.Http.Server.WebListener.SetRequestQueueLimit() tại Microsoft.Net.Http.Server.WebListener.Start() tại Microsoft.AspNet.Server.WebListener.MessagePump.Start (Func'2 app) tại Microsoft.AspNet.Server.WebListener.ServerFactory.Start (Máy chủ IServerInformation , ứng dụng Func'2) tại Microsoft.AspNet.Hosting.HostingEngine.Start (ngữ cảnh HostingContext) – selva

+0

Chào mừng bạn đến với Stack Overflow, @selva! Đây là một tính năng vốn có của xây dựng [tag: asp.net-5], như @rdans nói. Nếu bạn gặp một vấn đề cụ thể với việc làm cho hướng dẫn được liên kết hoạt động, thay vào đó hãy hỏi câu hỏi đó. –

Trả lời

21

Có thể tự lưu trữ ứng dụng MVC 6 không có IIS (không phải API Web) không?

Có. Trên thực tế, tất cả các ứng dụng ASP.NET Core đều được tự lưu trữ. Ngay cả trong sản xuất, IIS (hoặc Nginx) là một proxy ngược lại cho ứng dụng tự lưu trữ.

Đây là cách bạn có thể dùng thử.

Đầu tiên, tải về và cài đặt .NET Core từ đây https://www.microsoft.com/net/core

Second, tạo một dự án MVC 6. Ví dụ, sao chép một mẫu từ kho lưu trữ ASP.NET GitHub.

git clone [email protected]:aspnet/cli-samples.git 
cd cli-samples\HelloMvc 

Hoặc use Yeoman to generate an ASP.NET MVC 6 site.

npm install -g yo 
npm install -g bower 
npm install -g generator-aspnet 

yo aspnet webbasic MyMvc6App 
cd MyMvc6App 

Thứ ba, khôi phục và chạy dự án.

dotnet restore 
dotnet run 

Cuối cùng, điều hướng đến localhost: 5000 trong trình duyệt web của bạn. Ứng dụng MVC 6 được tự lưu trữ.

Nhìn ở lớp Program.cs kết quả, bạn có thể thấy tự lưu trữ. IISIntegration là tùy chọn - nó chỉ cần thiết nếu bạn muốn tích hợp với IIS.

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     var config = new ConfigurationBuilder() 
      .AddCommandLine(args) 
      .AddEnvironmentVariables(prefix: "ASPNETCORE_") 
      .Build(); 

     var host = new WebHostBuilder() 
      .UseConfiguration(config) 
      .UseKestrel() 
      .UseContentRoot(Directory.GetCurrentDirectory()) 
      .UseIISIntegration() 
      .UseStartup<Startup>() 
      .Build(); 

     host.Run(); 
    } 
} 
+0

Cảm ơn bạn rất nhiều để trả lời câu hỏi của tôi. nhưng tôi có ngoại lệ khung, khi thực hiện dnx. lệnh web.J: \ mvc6 \ testdemo> dnx. web System.InvalidOperationException: Không thể giải quyết các phụ thuộc sau f hoặc khung mục tiêu 'DNX, Phiên bản = v4.5.1': Kestrel 1.0.0-beta4 KRE-CLR-x86 1.0.0-beta2 Microsoft.AspNet. Chẩn đoán 1.0.0-beta4 Microsoft.AspNet.Hosting 1.0.0-beta4 Microsoft.AspNet.Mvc 6.0.0-beta4 Microsoft.AspNet.Server.IIS 1.0.0-beta4 Microsoft.AspNet.Server.WebListener 1.0 .0-beta4 Microsoft.AspNet.StaticFiles 1.0.0-beta4 – selva

+0

Tôi rất ngạc nhiên khi nó đang cố gắng giải quyết 'Kestrel' và không thể giải quyết những phụ thuộc khác. Re: 'Kestrel', nó dành cho máy Mac và tôi không nghĩ rằng nó được liệt kê trong tập tin' project.json'. Tôi ngạc nhiên 'dnx' thậm chí còn tìm kiếm nó. Re: các phụ thuộc khác, bạn đã chạy 'dnu restore' để đưa chúng xuống từ Nuget? Chúng ta cần làm điều đó trước khi chạy 'dnx'. –

+0

dnu khôi phục hoạt động tốt trong hệ thống của tôi. nhưng khi lưu trữ ứng dụng sang máy khác, tôi phải đối mặt với ngoại lệ. – selva

2

YES

ASP.NET 5 là hoàn toàn tách rời khỏi môi trường máy chủ web mà chủ các ứng dụng. ASP.NET 5 hỗ trợ lưu trữ trong IIS và IIS Express và các kịch bản tự lưu trữ bằng cách sử dụng các máy chủ Kestrel và WebListener HTTP. Ngoài ra, các nhà phát triển và các nhà cung cấp phần mềm của bên thứ ba có thể tạo các máy chủ tùy chỉnh để lưu trữ các ứng dụng ASP.NET 5 của họ.

biết thêm: ASP.NET documentation - Servers

3

Vâng, ASP.NET lõi hỗ trợ giao diện Open Web cho .NET (OWIN), bạn có hai lựa chọn để lưu trữ ASP của bạn.net ứng dụng web lõi:

  1. IIS

  2. tự chủ

Nhưng, tự lưu trữ ứng dụng web không thể khởi động tự động khi khởi động hệ thống và khởi động lại hoặc trong sự kiện thất bại.

+1

điểm quan trọng về việc không tự động khởi động lại. –

Các vấn đề liên quan