Archived Forum Post

Index of archived forum posts

Question:

550 access denied on ftp2 file upload

Apr 02 '14 at 21:50

Hi there,

I've taken over a software project that uses the Chilkat components. We're using version 9.4.1.42 having upgraded from an earlier one.

I've got an access issue with file upload using the ftp2 component. One of the client users frequently gets a 550 access denied error. Their permissions on the server seem to be correct and very occasionally they can upload. There are other users who do not have the issue.

I have tried using the software from my workstation using their connection details and it works. I have tried remoting to their workstation. The software using Chilkat does not upload but connecting to the same folder and transferring the same file using command line FTP does work.

The FTP server is Windows 2008 using IIS 7.5 with a standard FTP set up (that I can see). The server is in Australia and the client is connecting from China using a Chinese localised Windows 7. I can't see any issue with the file name created, it is all ASCII set characters, but I can't rule out something in the encoding.

I've been round and round with this and cannot see why this one client is having problems. Where else can I look for answers?


Edit update. Adding one of the Chilkat errors. Sorry it's in XML as that's what the client records at the moment. I've also substituted the IP addresses to hide them. The ccc ones are the client and the sss one the server.

 <ChilkatLog>
       <PutFile>
          <DllDate>Aug 15 2013</DllDate>
          <ChilkatVersion>9.4.1.42</ChilkatVersion>
          <Architecture>Little Endian; 32-bit</Architecture>
          <Language>.NET 4.0</Language>
          <VerboseLogging>0</VerboseLogging>
          <LocalFilename>C:\Users\Administrator\AppData\Local\Temp\ModelSync_20140319_210754.pdc</LocalFilename>
          <RemoteFilename>ModelSync_20140319_210754.pdc</RemoteFilename>
          <ProgressMonitoring>
             <enabled>yes</enabled>
             <heartbeatMs>1000</heartbeatMs>
             <sendBufferSize>16384</sendBufferSize>
          </ProgressMonitoring>
          <IdleTimeoutMs>360000</IdleTimeoutMs>
          <ReceiveTimeoutMs>60000</ReceiveTimeoutMs>
          <ConnectTimeoutSeconds>20</ConnectTimeoutSeconds>
          <initialGreeting>220 Microsoft FTP Service</initialGreeting>
          <restartNext>0</restartNext>
          <ModeZ>0</ModeZ>
          <BinaryMode>1</BinaryMode>
          <info>Passive transfer mode</info>
          <setupPassiveDataSocket3>
             <PassiveHostAddress>ccc.ccc.ccc.ccc</PassiveHostAddress>
             <hostAddr>ccc.ccc.ccc.ccc</hostAddr>
             <DataConnect>
                <hostname>ccc.ccc.ccc.ccc</hostname>
                <port>49350</port>
                <ConnectTimeoutMs_1>20000</ConnectTimeoutMs_1>
                <info>This is an IPV4 numeric address.</info>
                <info>Hostname to IP address resolution not needed.</info>
                <AddrInfoList>
                   <AddrInfo>
                      <ai_flags>4</ai_flags>
                      <ai_family>2</ai_family>
                      <ai_socktype>1</ai_socktype>
                      <ai_protocol>0</ai_protocol>
                      <ai_addrlen>16</ai_addrlen>
                      <ai_canonname>(NULL)</ai_canonname>
                   </AddrInfo>
                </AddrInfoList>
                <info>Connecting to IPV4 address.</info>
                <ipAddress2>ccc.ccc.ccc.ccc</ipAddress2>
                <myIP_5>sss.sss.sss.sss</myIP_5>
                <myPort_5>11118</myPort_5>
                <info>connect successful (3)</info>
                <socketOptions>
                   <SO_SNDBUF>8192</SO_SNDBUF>
                   <SO_RCVBUF>8192</SO_RCVBUF>
                   <TCP_NODELAY>0</TCP_NODELAY>
                </socketOptions>
             </DataConnect>
          </setupPassiveDataSocket3>
          <SetupPassiveDataSocket>Elapsed time: 468 millisec</SetupPassiveDataSocket>
          <command>STOR</command>
          <PutFilename>[ModelSync_20140319_210754.pdc]</PutFilename>
          <DataConnectionReady>Elapsed time: 0 millisec</DataConnectionReady>
          <StorResponse>550 Access is denied.</StorResponse>
          <error>STOR failed</error>
          <remoteFtpFile>ModelSync_20140319_210754.pdc</remoteFtpFile>
          <FtpResponse24>550 Access is denied.</FtpResponse24>
          <TotalTime>Elapsed time: 468 millisec</TotalTime>
          <error>Failed.</error>
       </PutFile>
    </ChilkatLog>

Second edit, the software using the component is VB.Net using the 4.0 framework. It's a windows forms application.


Third edit, new log event:

I've set verbose logging on the Chilkat client and I've noticed that my log is reporting a data transfer of:

BytesTransferred: 68585558

Which matches the local file size reported under here:

ChilkatLog:
  PutFile:
    DllDate: Mar  6 2014
    ChilkatVersion: 9.5.0.16
    Architecture: Little Endian; 32-bit
    Language: .NET 4.0
    VerboseLogging: 1
    LocalFilename: C:\Documents and Settings\Administrator\Local Settings\Temp\ModelSync_20140401_201056.pdc
    RemoteFilename: ModelSync_20140401_201056.pdc
    ProgressMonitoring:
      enabled: yes
      heartbeatMs: 1000
      sendBufferSize: 32768
    --ProgressMonitoring
    IdleTimeoutMs: 360000
    ReceiveTimeoutMs: 60000
    ConnectTimeoutSeconds: 20
    uploadFromLocalFile:
      localFileSize: 68585558
      uploadFromDataSource:
        initialGreeting: 220 Microsoft FTP Service
        restartNext: 0
        modeZ: 0
        binaryMode: 1
        setupDataConnection:
          active transfer mode
          setupActiveDataSocket:
            Using ephemeral port range for Active data connection.
            bindSockAddr: 0200 0000 0000 0000 0000 0000 0000 0000
            Socket bind successful.
            dataPort: 17273
            portIpAddress: ccc.ccc.ccc.ccc
            MyIPv4: -
            sendCommand:
              sendingCommand: PORT -
            --sendCommand
            readCommandResponse:
              replyLineQP: 200 PORT command successful.
              commandResponse: 200 PORT command successful.
              statusCode: 200
              readResponse: Elapsed time: 203 millisec
            --readCommandResponse
            PortCmd: Elapsed time: 219 millisec
          --setupActiveDataSocket
          setupActiveDataSocket: Elapsed time: 219 millisec
        --setupDataConnection
        sendUploadCommand:
          sendCommand:
            sendingCommand: STOR ModelSync_20140401_201056.pdc
          --sendCommand
        --sendUploadCommand
        acceptDataConnection:
          Data connection accepted.
          AcceptDataConnection: Elapsed time: 203 millisec
        --acceptDataConnection
        Reading intermediate response...
        readCommandResponse:
          replyLineQP: 550 Access is denied.
          commandResponse: 550 Access is denied.
          statusCode: 550
          readResponse: Elapsed time: 0 millisec
        --readCommandResponse
        intermediateResponseStatusCode: 550
        intermediateReply: 550 Access is denied.
        sendUploadFileData:
          sendBufferSize: 32768
          Sending uncompressed...
          sendOnSocketFromSource:
            socket is not ready for writing;
            idleTimeoutMs: 360000
            Socket send idle timeout
            Failed to send on socket from source.
          --sendOnSocketFromSource
          lastBytesSent: 9B21B235A9B4DC9463568D2A899B76CC
          Failed to upload data.
          UploadData: Elapsed time: 381187 millisec
        --sendUploadFileData
        closingDataConnection:
          terminateConnection:
            Timeout waiting to read socket or accept connection
            timeoutMs: 360000
            Terminated TCP connection.
          --terminateConnection
        --closingDataConnection
        skipFinalReply: 1
      --uploadFromDataSource
    --uploadFromLocalFile
    TotalTime: Elapsed time: 741609 millisec
    Failed.
  --PutFile
--ChilkatLog

So it looks like the client sends, but then get's denied access. There is no temporary file that I can see in the target directory but I don't know if IIS FTP stores incoming files somewhere else before moving to the target, I can't find any mention of this. Can anyone notice anything odd in the logs here? Thanks.

Regards Damien