Question about Storage Table...
-
quinta-feira, 9 de fevereiro de 2012 07:02
Lab 에 있는 소스로 테스트를 해보는 중인데, 에러가 발생하였습니다.
에러 코드로 보면 uri 를 찾지 못하는 에러인거 같습니다만,
환경 설정을 변경해야 하는 부분인지,
혹은 소스 상의 문제인지를 알수가 없네요...
lab 파일을 다운로드 받아서 보니, lab 파일은 비하인드 코드가 없고,
사이트에 나와 있더군요...
프로젝트입니다만...
원인이 무엇일까요..
디버깅 해보면 나오는 uri 는 아래에 적어 두었습니다.
-------------------------------
when i was build my solution about working with tables exercise that was found error.
i think that is not found uri. becuase status code is 404.
and i trace flow during debugging, this object in AddMessage method have "http://127.0.0.1:10002/devstoreaccount1/Messages" uri. of course it can't connect.
how can i set it?
it need modify some configuration?under error message...
----------------------------------
System.Data.Services.Client.DataServiceRequestException이(가) catch되었습니다.
Message=This request error occurred while processing
Source=System.Data.Services.Client
StackTrace:
location: System.Data.Services.Client.DataServiceContext.SaveResult.HandleBatchResponse()
location: System.Data.Services.Client.DataServiceContext.SaveResult.EndRequest()
location: System.Data.Services.Client.DataServiceContext.SaveChanges(SaveChangesOptions options)
location: System.Data.Services.Client.DataServiceContext.SaveChanges()
location: RdChat_WebRole.MessageDataServiceContext.AddMessage(String name, String body) file D:\Project\2012\Azure\Test\Ex_01\WorkingWithTables\RdChatSolution\RdChat_WebRole\MessageDataServiceContext.cs:line 30
InnerException: System.Data.Services.Client.DataServiceClientException
Message=<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>ResourceNotFound</code>
<message xml:lang="ko-KR">The specified resource does not exist.</message>
</error>
Source=System.Data.Services.Client
StatusCode=404
StackTrace:
location: System.Data.Services.Client.DataServiceContext.SaveResult.<HandleBatchResponse>d__1e.MoveNext()
InnerException:-----------------
under my source...
-----------------
public class MessageDataServiceContext : TableServiceContext
{
public MessageDataServiceContext(String baseAddress, StorageCredentials credentials) : base(baseAddress , credentials)
{
}public IQueryable<Message> Messages
{
get
{
return this.CreateQuery<Message>("Messages");
}
}public void AddMessage(String name, String body)
{
this.AddObject("Messages", new Message { Name = name, Body = body });
this.SaveChanges(); <-- error found here...
}
}
Todas as Respostas
-
quinta-feira, 9 de fevereiro de 2012 08:13Moderador
안녕하세요. Azure MVP 남정현입니다.
우선 코드에는 큰 이상이 없어보입니다. 그런데 localhost로 접속하려고 할 때 실패가 일어나는 것을 보면, Development Storage Emulator가 정상적으로 초기화되지 않았거나 혹은 Table Storage에 관한 설정이 활성화되지 않았는가 확인해보실 필요가 있을듯 합니다. 그리고 Azure 프로젝트 설정에서 연결 문자열을 지정할 때에는 endpoint를 직접 지정하지 마시고, 전체 연결 문자열에 대해서 UseDevelopmentStorage=True 라는 문자열만 지정하면 자동으로 Development Storage Emulator로 연결이 될 것입니다. UI에서는 Storage Emulator를 사용하겠다고 하시면 될 것 같습니다.
그리고 설정에 특별한 이상이 없다면, 404오류가 발생하는 또 다른 원인으로는 저장하려는 데이터의 물리적 길이나 문자 세트에 관련된 문제가 있을 것으로 예상됩니다. 로컬 에뮬레이터의 경우 실제 azure storage 서비스 환경과는 차이점이 많은 편입니다. 테스트하려고 했던 데이터에 대해서도 같이 알려주시면 문제 해결에 실마리가 될 수 있을 것도 같습니다.
남정현 (rkttu@rkttu.com) - Visual Studio 2010 한국 공식 팀 블로그 멤버 - http://www.vsts2010.net | Windows Azure Cafe SYSOP - http://cafe.naver.com/wazure | DEVPIA C# Forum SYSOP - http://www.devpia.com/CSharp.MAEUL
- Marcado como Resposta Jina LeeModerator segunda-feira, 23 de abril de 2012 01:00
-
quinta-feira, 9 de fevereiro de 2012 08:27
해결했습니다. T_T
사이트나 교재에는 빠져 있는 내용이더군요...
당연한 내용이라서 빠져 있었던거 같습니다만...
위에 굵은 부분이 빠져 있더군요...
Lab 파일에는 나와 있었습니다.
void Application_Start(object sender, EventArgs e)
{
CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>
{
configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
});// CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("DataConnectionString"));
var account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
// dynamically create the tables
CloudTableClient.CreateTablesFromModel(typeof(MessageDataServiceContext),
account.TableEndpoint.AbsoluteUri, account.Credentials);
}- Marcado como Resposta Jina LeeModerator sexta-feira, 10 de fevereiro de 2012 04:49
-
sexta-feira, 10 de fevereiro de 2012 04:52Moderador
안녕하십니까? MahoMay 님, 문의 내용이 해결 되어서 다행입니다.
문제 해결을 위해서 답변해주신 Azure MVP 남정현님 감사드립니다.차후에도 문의 사항 있으시면 언제든지 저희 Forum를 이용해 주시길 바랍니다.

