2012-04-04 23 views
7

Tôi gặp sự cố khi ServiceStack hoạt động với HTTPS trong IIS6 và tôi dường như không tìm thấy bất kỳ tài liệu nào về thiết lập này. Hiện tại tôi có thiết lập điểm cuối như vậy - http://example.com/api.ashx. Khi tôi duyệt đến điều này, tôi nhận được trang hữu ích của ServiceStack được tạo ra để giải thích các API có sẵn tại http://example.com/api.ashx/metadata. Khi tôi duyệt đến https://example.com/api.ashx (thông báo https), thay vào đó tôi nhận được thông báo lỗi này -Không thể nhận ServiceStack hoạt động trong IIS6 với HTTPS

Lỗi máy chủ trong '/' Application. Các nguồn tài nguyên không thể được tìm thấy. Mô tả: HTTP 404. Tài nguyên bạn đang tìm kiếm (hoặc một trong số các phụ thuộc ) của nó có thể đã bị xóa, tên của nó đã thay đổi hoặc là tạm thời không sẵn có . Vui lòng xem lại URL sau và tạo chắc chắn rằng URL đó được viết đúng chính tả. URL được yêu cầu: /api.ashx

Tôi đã sau đây thiết lập trong web.config của tôi (theo ví dụ ở đây - http://www.servicestack.net/ServiceStack.Hello/) -

<!-- ServiceStack: Required to host at: /api.ashx --> 
    <location path="api.ashx"> 
     <system.web> 
      <httpHandlers> 
       <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/> 
      </httpHandlers> 
     </system.web> 

Trên Windows 7 hộp địa phương của tôi đang chạy IIS7 và nó hoạt động tốt nhưng thử nghiệm và môi trường sống vẫn đang sử dụng IIS6 và tôi không thể làm cho nó hoạt động ở đó.

Các trang aspx thông thường khác đang hoạt động tốt khi sử dụng https.

Tôi đánh giá cao bất kỳ ai có thể đẩy tôi đi đúng hướng!

Trả lời

9

Vấn đề với IIS 6 là đường ống yêu cầu IIS 6.0 không nhận ra đường dẫn không có phần mở rộng ASP.NET, ví dụ: aspx không được chuyển tới trình xử lý ASP.NET isapi. Vì vậy, nói chung có 2 lựa chọn để có được điều này xảy ra, do đó bạn có thể nhận được ServiceStack để chạy trên IIS 6:

  1. Thay đổi con đường servicestack trong Web.Config từ '*' thành 'servicestack.ashx'

    <system.web>

    <httpHandlers> < thêm path = "servicestack.ashx" type = "ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb = "*"/> </httpHandlers >

    </system.web>

  2. Thêm một ánh xạ ký tự đại diện cho thư mục ảo của bạn để vượt qua tất cả các yêu cầu không được quản lý để ASP.NET: Thực hiện theo các bước sau để tạo ra một bản đồ ký tự đại diện kịch bản với IIS 6.0:

    1. Kích chuột phải vào một trang web và chọn Properties
    2. Chọn Home Directory tab
    3. Nhấp vào nút Cấu hình
    4. Chọn Mappings tab
    5. Nhấp vào nút Insert (xem Hình 4)
    6. Dán đường dẫn đến aspnet_isapi.dll vào trường Thực thi (bạn có thể sao chép đường dẫn này từ bản đồ tập lệnh cho tệp .aspx)
    7. Bỏ chọn ch eckbox nhãn Xác nhận tập tin tồn tại
    8. Nhấp vào nút OK

IIS 6.0 Wildcard mapping

+0

Thực tế, có một bước khác mà tôi đã bỏ sót (vấn đề liên quan đến chứng chỉ). Lỗi của tôi. Điều này giúp mặc dù, cảm ơn :) –

+0

Cố gắng tùy chọn 1: tôi nhận được một lỗi 404 bây giờ thay vì một xử lý không tìm thấy lỗi, thử tùy chọn 2: vẫn nhận được xử lý không tìm thấy lỗi, thử tùy chọn 1 một lần nữa sau khi thiết lập bản đồ mở rộng ký tự đại diện trong tùy chọn 2: Lỗi 404. Còn suy nghĩ nào khác ở đây không? Tôi khá stumped về việc này để làm việc trong IIS6. – kmehta

1

mythz câu trả lời không làm việc cho tôi.

Tôi làm cho nó hoạt động bằng cách thêm thẻ vị trí vào web.config với cấu hình servicestack. tôi thấy rằng servicestack làm việc với path = "*" - nhưng đã xuống nhiều yêu cầu (Episerver) nhưng giải quyết nó như thế này:

<location path="UniqueTag"> 
    <system.web> 
     <httpHandlers> 
      <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" /> 
     </httpHandlers> 
    </system.web> 
</location> 

Và sau đó tiền tố tất cả các tuyến đường với UniqueTag:

[Route("/UniqueTag/DeletePost/{Id}", Verbs = "POST")] 

Nhưng lưu ý rằng tùy chọn 2 từ câu trả lời của mythz cũng có thể được yêu cầu, bởi vì nó đã được thiết lập mặc định trong giải pháp của chúng tôi.

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