2012-07-17 47 views
6

Tôi đang phát xung quanh với tính năng Trang web mới trên Azure và cố gắng tải trang MVC đang chạy với RavenDB ở chế độ được nhúng. Tất cả mọi thứ hoạt động tốt tại địa phương nhưng chạy các trang web triển khai trong xanh tôi nhận được lỗi này:RavenDb trên trang web Azure - Truy cập bị từ chối

System.Net.NetworkInformation.NetworkInformationException: Access is denied

Điều này xảy ra khi tôi tạo ra các ví dụ db trong global.asax:

Store = EmbeddableDocumentStore { ConnectionStringName = "RavenDb" }; 

chuỗi kết nối của tôi là:

<add name="RavenDb" connectionString="DataDir=~\App_Data\Raven" /> 

Cảm ơn!

+0

stack trace là gì? –

Trả lời

12

Khi một cổng không được chỉ định cho RavenDb, nó sẽ đi ra ngoài và cố gắng để tìm nó là của riêng, nó thực hiện điều này bằng cách gọi IPGlobalProperties.GetActiveTcpListeners().

RavenDb | PortUtil.cs

var activeTcpListeners = IPGlobalProperties 
         .GetIPGlobalProperties() 
         .GetActiveTcpListeners(); 

Calling GetActiveTcpListeners() thực tập gọi hàm Win32 GetTcpTable() mà cố gắng để liệt kê tất cả các kết hợp cảng có thể trên máy chủ. Vì lý do rõ ràng, nó sẽ không phải là một kịch bản tốt để cho phép folks để làm cổng quét trong Windows Azure Web Sites. Điều này có nghĩa là hoạt động của GetTcpTable không thành công và khi một điều gì đó thất bại trong thế giới phát triển, chúng tôi sẽ ném một ngoại lệ.

Trong trường hợp cụ thể này, ngoại lệ là NetworkInformationException được nêu lên với quyền bảo mật bỏ qua cuộc gọi tới GetTcpTable. Đây là lý do tại sao nó dẫn đến một thông báo từ chối truy cập.

tl; dr

Thêm một cổng mặc định để web.config của bạn appSettings phần:

<appSettings> 
    <add key="Raven/Port" value="*"/> <!-- Add real tcp port # --> 
    <add key="Raven/DataDir" value="~\Data"/> 
    <add key="Raven/AnonymousAccess" value="Get" /> 
</appSettings> 
+0

Azure có cho phép bạn sử dụng bất kỳ cổng nào không? Có một số thủ thuật chúng ta nên biết, trước khi bàn tay? –

+2

Tôi chỉ chọn một cổng ngẫu nhiên và nó hoạt động một điều trị cổ vũ! –

+0

Tất cả các cổng Windows tiêu chuẩn áp dụng ở đây, không có cổng bổ sung dành riêng trong Windows Azure Web Sites. –

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