Tôi đang cố sử dụng Trình giả lập lưu trữ Azure để làm việc với bộ nhớ blob. Tôi dường như không thể làm cho nó hoạt động và đã lãng phí cả ngày cố gắng mà không thành công. Tôi tiếp tục nhận được một lỗi bị cấm 403 mặc dù đây là lưu trữ dành cho nhà phát triển. Tôi hy vọng ai đó ở đây có thể giúp tôi.Trình giả lập lưu trữ Azure - tạo blob cho 403 Thư bị cấm
Trước đây tôi đã chạy thành công chương trình tương tự này trên Azure. Tuy nhiên, thử nghiệm 3 tháng của tôi hết hạn mà tôi không thực sự sử dụng nó, và bây giờ mà tôi đã quay trở lại để nhìn vào Azure tôi phải chạy trên giả lập lưu trữ (sau khi thay đổi chuỗi kết nối để dev lưu trữ).
Tôi sẽ mô tả chi tiết những gì tôi đã làm.
Trước tiên cho tôi trấn an bạn rằng tôi có mọi thứ cần thiết được cài đặt (tôi nghĩ):
Tôi có cả Visual Studio 2012 Pro và Visual Studio 2012 Express for Web (đó là miễn phí). Tôi đã cài đặt các công cụ bổ sung cần thiết cho Azure bằng cách sử dụng trình cài đặt Nền tảng Web. Nếu tôi nhìn vào Add/Remove programs tôi thấy tôi có
- Windows Azure Công cụ cho Microsoft Visual Studio 2012 -v2.1
- Windows Azure Thư viện cho NET -v2.1
- Windows Azure Emulator - v2.1
- Windows Azure Authoring Tools -v2.1
tôi có thể tạo một dự án điện toán đám mây trong VS2012 nếu tôi muốn, và nếu tôi làm điều đó ra mắt thành công trên giả lập. Vì vậy, có vẻ như vấn đề của tôi là chỉ với bộ lưu trữ giả lập.
Dưới đây là những gì tôi đã làm:
Bước 1.
tôi tạo một dự án ASP.NET MVC4 mới. Tôi đang sử dụng .NET framework 4.5. Điều đó tạo ra các mẫu dự án cơ bản với một HomeController.cs và AccountController.cs
Bước 2.
tôi sử dụng NuGet để có được "Windows Azure Storage". Tôi tin rằng điều này đặt WindowsAzure.Storage.dll phiên bản 2.0.6.1 trong tài liệu tham khảo dự án của tôi. Bên cạnh đó tôi thấy rằng tài liệu tham khảo của tôi cũng bao gồm -Microsoft.WindowsAzure.Configuration v2.0.0.0 -Microsoft.WindowsAzure.Diagnostics v2.1.0.0 -Microsoft.WindowsAzure.ServiceRuntime v2.1.0.0 -Microsoft .WindowsAzure.StorageClient v1.7.0.0
Bước 3.
Trong file Web.config, tôi thêm các thẻ sau trong các thẻ
này về cơ bản là tên tài khoản và chìa khóa tất cả mọi người được cho là sử dụng khi sử dụng trình mô phỏng.
Bước 4.
Trong HomeController.cs Tôi tạo một hành động. Hành động này được cho là tạo vùng chứa trên bộ nhớ Azure blob và tải tệp lên đó. Đây là mã.Như bạn có thể nhìn thấy nó là khá nhiều mã tiêu chuẩn mà bạn tìm thấy trong các ví dụ mới bắt đầu
public ActionResult AddBlobToBlobContainerStorageEmulator()
{
// Retrieve storage account from connection string
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["EmulatorStorageConnectionString"]);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to the previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("myemulatortcont");
// Create the container if it doesn't already exist.
container.CreateIfNotExists();
// Retrieve reference to a blob named "mytestblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myemulatortestblob.jpg");
// Create or overwrite the "mytestblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(@"E:\TUTORIALS\Windows Azure\Azure NOTES and stuff\table.jpg"))
{
blockBlob.UploadFromStream(fileStream);
}
return Content("Blob uploaded to container on storage emulator");
}
Bước 5.
tôi chắc chắn rằng các mô phỏng tính toán được bắt đầu: Start> All Programs > Windows Azure> Trình giả lập> Trình giả lập Windows Azure Tính toán
Bước 6.
Đó là tất cả. Tôi không tạo dự án đám mây hay bất cứ thứ gì, vì vậy khi tôi chạy nó sẽ chạy trên "Local IIS Web Server" theo thuộc tính của dự án (còn được gọi là IIS Express).
Bây giờ tôi đi đến Debug> Bắt đầu gỡ lỗi và khởi chạy trang web trong cửa sổ trình duyệt như mong đợi tại localhost: 57810.
Nếu tôi hướng đến
http://localhost:57810/Home/AddBlobToBlobContainerStorageEmulator
nó nên bắn phương pháp hành động của tôi.
Thay vào đó tôi thấy
Đường dây 118 là trong RED .... vì vậy về cơ bản container không thể được tạo ra.
Ai đó có thể cho tôi biết điều gì sai ở đây. Tôi có cần phải bằng cách nào đó thêm một số sự cho phép để giả lập lưu trữ phát triển? Tôi không hiểu tại sao nó nói Cấm.
Tôi đã tự hỏi nếu có thể có một số vấn đề trên máy tính của tôi, hoặc có thể có một số xung đột giữa Azure. Các phiên bản của các dll trong dự án của tôi bằng cách nào đó không chính xác cho giả lập phát triển? Hoặc có thể có một lỗi trong v2.1?
Tôi đã giải thích chính xác cách tôi đã thực hiện dự án của mình nhưng tôi sẵn sàng tải lên toàn bộ nội dung nếu có ai đó muốn thử chạy nó.
Cảm ơn bạn vì bất kỳ trợ giúp nào bạn có thể cung cấp.
Nếu bạn gỡ lỗi, 'storageAccount' trông như thế nào? "EmulatorStorageConnectionString" có đúng không? –
Bạn đã cấp quyền truy cập công khai vào blob của mình chưa? –
@lc: EmulatorStorageConnectionString phải chính xác, đó là chuỗi mặc định để sử dụng cho trình giả lập. Tôi nhận được nó từ đây: http://msdn.microsoft.com/en-us/library/windowsazure/hh403989.aspx – Gary