IIS 7.0 への SendRequestEx関数 – プログラミング – Home

通知
すべてクリア

IIS 7.0 への SendRequestEx関数


sheep
 sheep
(@sheep)
ゲスト
結合: 16年前
投稿: 1
 

はじめまして、sheepと申します。

Windows Server 2003 のHTTPサーバ(IIS6.0)にアップロードする関数を、Windows
Server 2008 のHTTPサーバ(IIS7.0)にも対応するように変更しようとしていますが、なか
なかうまくいかず、困っています。

以下、その関数の一部を記載します。

=========================================================================

DWORD dwHttpRequestFlags =INTERNET_FLAG_EXISTING_CONNECT |
INTERNET_FLAG_NO_AUTO_REDIRECT |INTERNET_FLAG_RELOAD;

// Create INet session
CInternetSession* pInetSession = new CInternetSession(NULL, 1,
INTERNET_OPEN_TYPE_DIRECT, NULL, NULL,INTERNET_FLAG_DONT_CACHE);

CString szServerName = xxx.xxx.xxx.xxx;
INTERNET_PORT nPort = 80;
CString szUserName = DomainName\\UserName;
CString szPassword = Password;
CString szPath = /VirturlDir/123;

CHttpConnection* pHttpConnection = pInetSession->GetHttpConnection
(szServerName, nPort, szUserName, szPassword);

CHttpFile* pFile = pHttpConnection->OpenRequest(CHttpConnection::HTTP_VERB_PUT,
szPath, NULL, 1, NULL, NULL, dwHttpRequestFlags);

//read from local file
CString szTest(_T(test));

pFile->SendRequestEx( szTest.GetLength() );
pFile->WriteString( szTest );
pFile->EndRequest();

/*
pFile->SendRequest(NULL, 0, (void *)&szTest, szTest.GetLength());
*/
=========================================================================

このコードを2008 Server(IIS 7.0)に対して動かすと、EndRequest()関数でThrowされて
しまい、GetLastErrorでエラーを見てみると、The action must be retried(12032)と
言われてしまいます。
このコードを2003 Server(IIS 6.0)に対して動かすと、問題なくファイルがアップロード
されます。
また、2008 Serverでも、SendReqestEx~EndRequestの行をSendReqeuest(コメントアウト
部分)に置き換えて実行すると、こちらも問題なくアップロードされます。

2008 Server側のIISの設定は、WebDAV等、一通りしてあるつもりです。
また、認証方法は、Windows認証が設定してあります。

申し訳ありませんが、ご教授よろしくお願いします。


引用解決済
トピックタグ

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました