2015-01-09 26 views
9

Vì vậy, tôi đang xây dựng một ứng dụng MVC6 trong Visual Studio 2015 và đã cố gắng tìm ra nhiều thứ nhất, tuy nhiên, tôi chưa triển khai triển khai.Làm thế nào để cấu hình một ứng dụng MVC6 để làm việc trên IIS?

Trong MVC4 (những gì tôi đã sử dụng trước đó), quá trình của chúng tôi * đã được xuất bản vào một thư mục, sau đó thiết lập trang web trong IIS (Nhấp chuột phải vào Sites ->Add Website).

  • Thực ra, quy trình của chúng tôi được thiết lập trong IIS và TeamCity, chứ không phải cho các ứng dụng thử nghiệm như thế này :).

Tôi đã làm theo quy trình này và rõ ràng là nó không tầm thường để thiết lập trang web IIS và xuất bản vào đúng thư mục ... nhưng điều đó không thực sự hiệu quả với tôi.

Chúng tôi đang chạy IIS 8 trên Windows Server 2012 và chúng tôi đã cài đặt thời gian chạy .Net 4.6 trên máy chủ.

+0

Bạn có thể mô tả thêm về lý do bạn cho rằng nó không hoạt động? –

+0

@Cory - Tôi nhận được một trang báo lỗi cho biết tôi không có quyền xem thư mục. – Maverick

+0

Bạn có thể hiển thị cấu trúc thư mục cho chúng tôi không? –

Trả lời

8

Các bước sau đã làm việc cho tôi và sẽ giúp bạn lưu trữ dự án của bạn trên IIS.

Sử dụng Visual Studio 2015 Preview như IDE của bạn,

  1. Tạo một ASP NET 5 Người khởi xướng App.
  2. Kiểm tra xem nó có hoạt động bên ngoài IIS hay không.
  3. Sau khi hoàn tất, hãy xuất bản ứng dụng. Trong ví dụ này, tôi đã chọn vị trí C:\PublishWebApp.

    3.1. Khi xuất bản ứng dụng của bạn, hãy chắc chắn rằng bạn có:

    • tiền biên dịch Disabled
    • amd64 chọn

      (Xem hình bên dưới)

Publish Settings Screenshot

  1. Khi xuất bản thành công, hãy truy cập C:\PublishWebApp. Bạn sẽ thấy các thư mục approotwwwroot bên trong.
  2. Bây giờ hãy mở Trình quản lý IIS (Tôi cho rằng bạn đã bật tính năng ASP .NET 4.5)
  3. Tạo một trang web mới.

    6.1: Chọn thư mục wwwrooot làm đường dẫn vật lý của trang web. Trong ví dụ này, nó là C:\PublishWebApp\wwwroot.

  4. Kiểm tra trang web để xem trang web có hoạt động không. Nếu bạn gặp bất kỳ lỗi nào, vui lòng đăng chúng ở đây.

Nếu tùy chọn tiền biên dịch được chọn trong cửa sổ Xuất bản Web Settings hình trên, sau đó bạn phải

  1. Chuyển đến thư mục wwwroot của ứng dụng web xuất bản của mình. Trong ví dụ này, nó là C:\PublishWebApp\wwwroot.
  2. Xác định vị trí web.config.
  3. Bên trong thư mục ứng dụng đã xuất bản của bạn, có một thư mục packages bên trong thư mục approot cần chứa thư mục có tên sau ứng dụng của bạn, với thư mục cho phiên bản bên dưới. Bên trong thư mục đó phải là một thư mục có tên là root. Trong web.config, đặt giá trị cho khóa kre-app-base thành thư mục root. Để tham khảo, hãy xem dòng mã bên dưới. Trong ví dụ này, tên ứng dụng là WebApplication10.

    <add key="kre-app-base" value="..\approot\packages\WebApplication10\1.0.0\root" /> 
    
+0

Cảm ơn, tôi sẽ thử điều này vào thứ hai - Tôi nghĩ rằng tôi có Precompile trong quá trình xuất bản đánh dấu, vì vậy hy vọng đó là vấn đề :). – Maverick

+0

Nếu tùy chọn Precompile được chọn thì nó cũng sẽ hoạt động. Nhưng cho rằng bạn phải làm thiết lập nhỏ. Tôi sẽ cập nhật câu trả lời của mình. – dotnetstep

+0

Để làm được điều này, tôi không cấu hình Precompiled App Config và quan trọng, chỉ IIS vào thư mục 'wwwroot'. Vấn đề thực tế của tôi là IIS đã trỏ đến cùng một thư mục mà tôi đã xuất bản - điều đó không đúng :). Massive n00b di chuyển. P.S. Cảm ơn @dotnetstep! – Maverick

1

Tôi đã mất nhiều giờ trên gỡ rối vấn đề này cuối cùng đã nhận nó làm việc, bước sau:

1) Xuất bản ứng dụng MVC6 bạn sử dụng visual studio vào hệ thống tập tin, hãy chắc chắn bạn đang chọn đúng phiên bản DNX Target trong trường hợp của tôi là dnx-clr-win-x64.1.0.0-rc1-update1.

Trong thư mục đầu ra "wwwroot" thư mục ứng dụng của bạn trong IIS (KHÔNG ánh xạ tới ứng dụng, chỉ ứng dụng ROOT trong IIS hoạt động với DNX ví dụ "Trang web mặc định").

+0

Đây là tất cả được bao gồm trong câu trả lời được chấp nhận rồi? – Maverick

0

Tôi vừa dành một ngày để làm việc này. tôi tìm thấy điều này here (tìm kiếm các bài viết của GuardRex) vô giá, hoàn thành các bước mà câu trả lời được chấp nhận đưa ra, đó là sự khởi đầu của nó.

Khá nhiều nếu bạn cố gắng thêm ứng dụng vào trang web có nhiều cách giải quyết và cấu hình bổ sung cần thiết được nêu chi tiết trong liên kết.

Đối với người mới bắt đầu:

1) Đảm bảo bạn có xử lý HttpPlatform cài đặt here

2) Có vẻ rõ ràng nhưng chắc chắn .net5 được cài đặt trên máy chủ của bạn here

Tôi biết điều này là nếu bạn đang thêm một ứng dụng vào một trang web, nhưng có một số cạm bẫy và cần sàng lọc rất cần thiết cho quá trình triển khai tại thời điểm mà mọi người nên biết.

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