はじめまして、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認証が設定してあります。
申し訳ありませんが、ご教授よろしくお願いします。