0

次のエンドポイントを持つWCFWebApiRestサービスがあります。

[WebGet(UriTemplate = "{id}")]

[WebGet(UriTemplate = "{id}.pdf")]

最初のエンドポイントはJSONを返し、2番目のエンドポイントはpdfを返します。これらのエンドポイントは両方とも私のローカル環境で機能しますが、pdfエンドポイントは404IIS7を実行しているサーバーでを返します。

ルートを実行するために必要なIIS7のセットアップはありますか?

4

2 に答える 2

0

私はこの問題の解決策を見つけました。これは単純なweb.configの追加です。

<system.webServer>
  <handlers>
      <add name="PDFHandler-Integrated-4.0" path="*.pdf" verb="GET" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" preCondition="integratedMode" />
  </handlers>
</system.webServer>
于 2012-05-10T14:42:35.683 に答える
0

IISのMIMEタイプに.pdfを追加する必要がある場合があります

アプリケーション/オクテットストリームのタイプでファイル拡張子.PDFを追加してみてください

http://technet.microsoft.com/en-us/library/cc725608%28v=ws.10%29.aspx

アップデート

itextsharpのようなものを使用して動的に生成されたPDFを直接返すには:

[WebGet(UriTemplate = "GetPDF/{id}")]        
public void GetPDF(int id)
        {
        Invoice i = InvoiceData.GetInvoiceByID(id);
        MyApp.Data.Export.PDF pdf = new MyApp.Data.Export.PDF();
        byte[] data = pdf.generatePDFBytes(id);

        Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=\"" + i.InvoiceNumber + ".pdf" + "\"");
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(data.ToArray());
        Response.End();
    }
于 2012-04-13T19:54:13.927 に答える