ドキュメントパスを渡す必要があるため、ピリオドをURLエンコードする必要があります。
http://example.com/test.aspx?document=test.docx
だからtest.docxは私に違法な文字のエラーを引き起こしています。だから私はそれを
. --> %2E
Server.UrlEncodeを使用しようとしました
string b = Server.UrlEncode("http://example.com/test.aspx?document=test.docx");
しかし私は得る
"http%3a%2f%2fexample.com%2ftest.aspx%3fdocument%3dtest.docx"
それで、文字列置換のように使用し、それを手動で実行し、すべてのピリオドをそのコードで置換する必要がありますか?
問題が発生していない期間(%2Eで問題が解決しない場合)。ピリオドは、問題がピリオドではない場合でも、完全に有効なURL文字です。スローされるエラーのスタックトレースを確認するか、完全なエラーの詳細を投稿してください。
また、パス全体をURLエンコードしないでください。クエリ文字列パラメーターvalueのみ。
string b = "http://example.com/test.aspx?document=" + Server.UrlEncode("test.docx");
その方法で試してもまだエラーが発生しますか?
10フィートのポールではSharePointに触れません。ただし、この期間を逃れたとしても、SharePointが悪質なことをするのを必ずしも止めることはできません。しかし、私はあなたが少なくともそれを試すべきだと思います。
Server.UrlEncode("test.docx").Replace(".", "%2E");
これは本当に古い質問ですが、同じような問題を探してこの問題に出くわしました。 「/」をピリオド付きのURLの末尾に貼り付けたところ、問題が回避されました。