2015-12-17 18 views
10

Tôi đã có ấn tượng rằng chúng tôi thực sự có thể chạy một ứng dụng giao diện điều khiển trên một máy chủ trực tiếp có thể nghe và phân phối dữ liệu (các trang web nếu nó được cho mục đích đó). Bằng cách này, chúng tôi sẽ không phải lưu trữ các ứng dụng web của chúng tôi trên IIS. Tôi luôn nghĩ rằng đây là những gì "lưu trữ các ứng dụng web trong quá trình của riêng bạn" có nghĩa là.ASP.net 5 Tự lưu trữ trên Máy chủ Windows Live - Quyền EACCES bị từ chối?

Đây là một phần của project.json của tôi mà tôi nghĩ là có liên quan:

"dependencies": { 
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final" 
    }, 

    "commands": { 
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5010" 
    }, 

Nếu tôi đi đến dấu nhắc lệnh, dir vào thư mục gốc của dự án, và sau đó chạy DNX web, vâng, thực sự, ứng dụng giao diện điều khiển đang chạy và tôi có thể truy cập trình duyệt của mình và nhập http://localhost:5010 và xem trang web.

Nhưng khi tôi thay đổi url đó thành url thực (và có, tôi đã có DNS trỏ tới máy chủ của tôi cho url đó), tôi sẽ gặp lỗi EACCES permission denied.

Nếu chúng ta có thể "tự lưu trữ" nhưng chỉ với máy chủ cục bộ, điều đó dường như chỉ tốt cho phát triển địa phương. Tại sao có khả năng "tự lưu trữ trong quá trình của riêng tôi" nếu nó không thể cho trực tiếp/sản xuất?

Tôi cần làm gì? Tôi có cần đặt một số quyền cho một thư mục cụ thể không? Người dùng/nhóm nào, quyền nào và thư mục nào? Tôi đã thử IIS_IUSRS trên thư mục gốc của dự án, và tất nhiên, điều đó không làm việc vì tôi muốn bỏ qua IIS anyway.

Mọi trợ giúp sẽ được đánh giá cao.

+1

Bạn đã tìm ra chưa? Có thể một số ứng dụng khác đang sử dụng cổng này không? Giống như một ứng dụng trong IIS, một ví dụ khác của ứng dụng bạn đang chạy? Bạn có thể dán toàn bộ bản ghi đầu ra từ bảng điều khiển không? –

+0

Tôi nghĩ bạn có thể đúng. Có cùng một trang web đăng ký trong IIS mà tôi đang cố gắng để có được Kestrel để lắng nghe. Tôi sẽ xem xét điều đó và tôi sẽ liên lạc lại với bạn khi tôi tìm thấy bất cứ điều gì. –

+1

Tôi vừa gặp lỗi tương tự và thay đổi cổng đã giải quyết được lỗi đó. IIS đã có một số ứng dụng tại cổng 80. Cảm ơn, @JijieChen –

Trả lời

14

Đối với bất cứ ai tìm kiếm câu hỏi này sau:

Khi bạn khởi động máy chủ Kestrel, bạn cần đảm bảo rằng không có một cái gì đó đã lắng nghe trên cổng đó, nếu không nó sẽ không thể để bắt đầu. IIS là một thủ phạm rõ ràng nếu bạn đang cố gắng để lưu trữ một cái gì đó trên tiêu chuẩn http (cổng 80). Bạn cần phải dừng bất cứ điều gì khác đang chạy trên cổng đó, hoặc sử dụng nó để chuyển tiếp lưu lượng truy cập vào máy chủ Kestrel của bạn.

Thông tin thêm về lưu trữ ASP.NET 5 dự án trực tiếp trong IIS có thể tìm thấy tại đây: https://docs.asp.net/en/latest/publishing/iis.html

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