1
私は単純なWebサービスを持っており、私は単一のテキストファイルを返すメソッドを作りたいと思います。Windows Azure上で動作するWCFサービスでファイルを返す方法は?
public byte[] GetSampleMethod(string strUserName)
{
CloudStorageAccount cloudStorageAccount;
CloudBlobClient blobClient;
CloudBlobContainer blobContainer;
BlobContainerPermissions containerPermissions;
CloudBlob blob;
cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount;
blobClient = cloudStorageAccount.CreateCloudBlobClient();
blobContainer = blobClient.GetContainerReference("linkinpark");
blobContainer.CreateIfNotExist();
containerPermissions = new BlobContainerPermissions();
containerPermissions.PublicAccess = BlobContainerPublicAccessType.Blob;
blobContainer.SetPermissions(containerPermissions);
string tmp = strUserName + ".txt";
blob = blobContainer.GetBlobReference(tmp);
byte[] result=blob.DownloadByteArray();
WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Disposition", "attachment; filename="+strUserName + ".txt");
WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain";
WebOperationContext.Current.OutgoingResponse.ContentLength = result.Length;
return result;
}
...とサービスのインタフェースから:私はこの方法でやったことを
[OperationContract(Name = "GetSampleMethod")]
[WebGet(UriTemplate = "Get/{name}")]
byte[] GetSampleMethod(string name);
そして、それは私にXML応答を含むテストファイルを返します。 質問は、XMLシリアル化なしでファイルを返すにはどうすればいいですか?
サービスに接続してファイルをダウンロードするためにどのクライアントを使用していますか? Visual Studioによって生成されたクライアントは自動的にバイト配列に逆シリアル化されます。 –
ブラウザで動作する必要があります –
ブラウザでファイルを添付ファイルとして保存したり、コンテンツを表示したりしますか? –