Hello,
We have published our site to the web. However, we are experiencing issues. What we are trying to do is have a user select a file to upload then have aspose process that document. The problem is the project works locally, but when we publish to the server, we are having issues. It is having an issue getting the file we are uploading. Here is our code.
Imports System.Xml
Imports System.Xml.Schema
Imports System.Data.SqlClient
Imports System.Web.Configuration
Imports System.Net
Imports Aspose.Cells
Imports Telerik.WebControls
Imports System.Threading
Imports MattBerseth.WebControls.AJAX.Progress
Imports System.Data
Imports System.Data.OleDb
Partial Class _Default
Inherits System.Web.UI.Page
Public nCount As Double
Public sourceConnection As SqlConnection
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim license As Aspose.Cells.License = New Aspose.Cells.License()
license.SetLicense("Aspose.Cells.lic")
If Not Page.IsPostBack Then
Dim UserName As String
UserName = IsAllowed()
Me.lblTodaysDate.Text = DateTime.Now
Me.lblUserName.Text = UserName
End If
End Sub
Public Function PostPage(ByVal url As String, ByVal payload As String) As String
Dim xmlString As String = payload
Dim result As String = vbNullString
Dim myxmldoc As New XmlDocument
Try
Dim client As New WebClient()
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
Dim request As Byte() = Encoding.ASCII.GetBytes(xmlString)
Dim response As Byte() = client.UploadData(url, "POST", request)
result = Encoding.UTF8.GetString(response)
'The myxmldoc now holds the results
myxmldoc.LoadXml(result)
PostPage = GetStatus(myxmldoc)
Catch ex As Exception
' Response.Write(ex.Message)
PostPage = "ServerError"
End Try
End Function
Function GetStatus(ByVal m_xmld As XmlDocument) As String
Dim descriptionValue As String
descriptionValue = ""
Try
' Dim m_xmld As XmlDocument
Dim m_nodelist As XmlNodeList
Dim m_node As XmlNode
m_nodelist = m_xmld.SelectNodes("/TrackResponse/Shipment/Package/Activity/Status/StatusType")
'Loop through the nodes
For Each m_node In m_nodelist
'Get the firstName Element Value
descriptionValue = m_node.ChildNodes.Item(1).InnerText
Next
Catch errorVariable As Exception
End Try
Return descriptionValue
End Function
Function IsAllowed() As String
Dim UserName As String
Dim StartNum As Integer
Dim EmpNameLength As Integer
UserName = User.Identity.Name
'UserName = "ipgna\tara.perry"
'StartNum is always 6 b/c it's always "IPGNA\"
StartNum = 6
EmpNameLength = UserName.Length - StartNum
UserName = UserName.Substring(StartNum, EmpNameLength)
If UserName = "tara.perry" Then
'Allow
ElseIf UserName = "john.young" Then
'Allow
ElseIf UserName = "annette.varndell" Then
'Allow
ElseIf UserName = "frank.king" Then
'Allow
ElseIf UserName = "jim.hahn" Then
'Allow
ElseIf UserName = "isaac.apea" Then
'Allow
Else
'Do not Allow
' Response.Redirect("NoAccess.aspx")
End If
IsAllowed = UserName
End Function
Protected Sub UpdateFile()
Dim strPayload As String
Dim cInvoice As String
Dim cTrack As String
Dim xResult As String
Dim nRow As Double
Dim cProject As String
Dim ctask As String
Dim Result As String
nCount = 0
'Reset Import Rows label
'txtLabel.Text = "Starting..."
'Get the uploaded file
Dim FileName As String
FileName = ""
For Each f As UploadedFile In RadUpload1.UploadedFiles
FileName = f.FileName 'This gets c:\Documents and Settings\annette.varndell\desktop\0009212008.xls
Next
Dim x As Double
Dim workbook As Workbook = New Workbook()
'Calling Open method of Workbook object to open an Excel file using its file path
workbook.Open(FileName) 'Here is where the issue is. It can't find the file
Dim worksheet As Worksheet = workbook.Worksheets(0)
' Column 6 is Tracking
' Column 8 is Status
Dim cells As Cells = worksheet.Cells
Dim cVersion As String
' x = cells.EndCellInColumn(7).Row
x = cells.End.Row + 1
lblTotal.Text = x.ToString
Session("TotalCount") = x
Me.lblTodaysDate.Text = "rows"
For nRow = 1 To x
TryAgain:
xResult = ""
cVersion = worksheet.Cells(nRow, 0).StringValue
If cVersion = "3" Then
cTrack = worksheet.Cells(nRow, 6).StringValue
cInvoice = worksheet.Cells(nRow, 3).StringValue
Else
cTrack = worksheet.Cells(nRow, 19).StringValue
cInvoice = worksheet.Cells(nRow, 5).StringValue
End If
If Trim(cInvoice) = "" Then
Exit For
End If
If Trim(cTrack) <> "" Then
strPayload = "<?xml version='1.0'?>"
strPayload += ""
strPayload += " FC29B7AF62510F30"
strPayload += " jygoalkeeper"
strPayload += " Password99"
strPayload += ""
strPayload += "<?xml version=""1.0""?>"
strPayload += ""
strPayload += ""
strPayload += ""
strPayload += ""
strPayload += "guidlikesubstance"
strPayload += ""
strPayload += "1.0"
strPayload += ""
strPayload += "Track"
strPayload += ""
strPayload += "" + cTrack + ""
strPayload += ""
xResult = PostPage("HTTPS://www.ups.com/ups.app/xml/Track", strPayload)
If cVersion = "3" Then
worksheet.Cells(nRow, 8).PutValue(xResult)
Else
worksheet.Cells(nRow, 8).PutValue(xResult)
End If
End If
If xResult <> "ServerError" Then
nCount = nCount + 1
cProject = worksheet.Cells(nRow, 10).StringValue
cProject = Trim(Mid(cProject, 1, 4) + Mid(cProject, 6, 3) + Mid(cProject, 10, 2))
ctask = worksheet.Cells(nRow, 11).StringValue
ctask = Mid(ctask, 1, 3) + Mid(ctask, 5, 3)
If Mid(ctask, 6, 1) <> "-" And ctask <> "" Then
Result = VerifySubAccount(cProject, ctask)
If ctask <> Result Then
' uh oh
If cVersion = "3" Then
worksheet.Cells(nRow, 124).PutValue(Result)
Else
worksheet.Cells(nRow, 235).PutValue(Result)
End If
End If
End If
Session("status") = (nCount / x) * 100
Session("thecount") = nCount
Me.ProgressControl2.Value = nCount
Else
GoTo TryAgain
End If
Next
Me.lblTodaysDate.Text = "cell done"
Call workbook.Save(FileName)
Button1.Enabled = True
TimerControl1.Enabled = False
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Session.Add("status", 0)
Session.Add("thecount", 0)
Session.Add("totalcount", 0)
ConnectToSQL()
Dim objThread As New Thread(New System.Threading.ThreadStart(AddressOf UpdateFile))
objThread.IsBackground = True
objThread.Start()
Session("Thread") = objThread
Me.ProgressControl2.Visible = True
Button1.Enabled = False
TimerControl1.Enabled = True
End Sub
Protected Sub TimerControl1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TimerControl1.Tick
Dim i As Integer = CType(Session.Item("status"), Integer)
Dim y As Integer = CType(Session.Item("thecount"), Integer)
Dim nTotal As Integer = CType(Session.Item("totalcount"), Integer)
Me.ProgressControl2.Value = i
lblRecord.Text = y.ToString
lblTotal.Text = nTotal.ToString
UpdatePanel1.Update()
If y = nTotal And nTotal <> 0 Then
' TimerControl1.Enabled = False
Button1.Enabled = True
End If
End Sub
Protected Sub ConnectToSQL()
Dim sSqlConnectionString As String = ConfigurationManager.ConnectionStrings("OctagonDatabase").ConnectionString
sourceConnection = New SqlConnection(sSqlConnectionString)
Dim myDataset As New DataSet()
End Sub
Protected Function VerifySubAccount(ByVal cProject As String, ByVal cSub As String) As String
Dim result As Integer
Try
sourceConnection.Open()
sourceConnection.Close()
Catch ex As Exception
'Response.Redirect("Error.aspx")
End Try
sourceConnection.Open()
Dim sqlStatement As String
sqlStatement = "select count(*) from pjpent where project = " & cProject & " and pjt_entity = " & cSub & ""
Dim AddComm As New Data.SqlClient.SqlCommand(sqlStatement, sourceConnection)
result = AddComm.ExecuteScalar()
If result > 0 Then
VerifySubAccount = cSub
Else
cSub = "361000"
sqlStatement = "select count(*) from pjpent where project = " & cProject & " and pjt_entity = " & cSub & ""
AddComm = New Data.SqlClient.SqlCommand(sqlStatement, sourceConnection)
result = AddComm.ExecuteScalar()
If result > 0 Then
VerifySubAccount = cSub
Else
cSub = "700361"
sqlStatement = "select count(*) from pjpent where project = " & cProject & " and pjt_entity = " & cSub & ""
AddComm = New Data.SqlClient.SqlCommand(sqlStatement, sourceConnection)
result = AddComm.ExecuteScalar()
If result > 0 Then
VerifySubAccount = cSub
Else
VerifySubAccount = "Error"
End If
End If
End If
sourceConnection.Close()
Return VerifySubAccount
End Function
End Class