Receive biztalk request sample aspx please

  • Thread starter Daniel Rimmelzwaan
  • Start date
D

Daniel Rimmelzwaan

I want to send a biztalk document to an aspx page, and I need to see some
sample code, because I just can't make it work. I have a port with transport
type HTTP, pointing to my aspx page, something like
http://myserver/mypage.aspx. From there it gets blurry, because I just can't
figure out how to do the rest.

Does anybody have a sample page for me that I can take a look at? Just a
simple one that takes whatever biztalk sends and saves it as an xml file on
the hard drive, with some pointers of what to check for, maybe some
exception handling? I am working with C#.NET, but VB.NET would be nice too,
either one.

Any help would be very much appreciated. I am not in the habit of
crossposting to more than one newsgroup, but I have been searching for a
long time, and I am getting nowhere.

Thanks,
Daniel.
 
P

Prashant Kondle

This is the piece of code i use in my ASPX page load function--

private void Page_Load(object sender, System.EventArgs e)
{
// Create a Stream object to capture entire InputStream from browser.
Stream str = Request.InputStream;

// Find number of bytes in stream.
int strLen = (int)str.Length;

// Create a byte array to hold stream.
byte[] bArr = new byte[strLen];

// Read stream into byte array.
str.Read(bArr,0,strLen);

// Convert byte array to a text string.
String strmContents="";
for(int i = 0; i < strLen; i++)
{
strmContents = strmContents + (Char)bArr;
}


// write string into a file using filestream
string Filepath = "c:\\output.xml";
FileStream fs = new
FileStream(Filepath,FileMode.CreateNew,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write(strmContents);
sw.Flush();
sw.Close();

}

hope it helps

-PK
 
D

Daniel Rimmelzwaan

Thanks for the sample code. I copied it into my aspx page, but it doesn't
work for me. My guess is that I need to do some header validation in the
aspx page too, I just don't know what, because I can find no documentation
about this. Biztalk puts my request in the retry Queue, saying there's no
processing server. I get the following error in the event log.

An error occurred in BizTalk Server.

Details:
------------------------------
[0x80004005] An error occurred during transmission:
Request information:

Proxy:
Proxy port:80
URL:http://myserver/mypage.aspx
Content-Type:text/plain; charset="utf-8"
User name:administrator
Client certificate:
Request body:559 Bytes
Timeout duration (seconds): 600
Error code:80004005
====== ERROR =====
The HTTP server returned an unexpected response: 500 Internal Server Error
The following response was received:
<html>
<head>
<title>Parser Error</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size:
..7em;color:black;}
p
{font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b
{font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 {
font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 {
font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9emDans Test
[0x0159] The server encountered a transport error while processing the
messaging port "mytest", which uses a transport component with a ProgID of
"BizTalk.SendHTTPX.1".

[0x012b] A transmission attempt failed.




Prashant Kondle said:
This is the piece of code i use in my ASPX page load function--

private void Page_Load(object sender, System.EventArgs e)
{
// Create a Stream object to capture entire InputStream from browser.
Stream str = Request.InputStream;

// Find number of bytes in stream.
int strLen = (int)str.Length;

// Create a byte array to hold stream.
byte[] bArr = new byte[strLen];

// Read stream into byte array.
str.Read(bArr,0,strLen);

// Convert byte array to a text string.
String strmContents="";
for(int i = 0; i < strLen; i++)
{
strmContents = strmContents + (Char)bArr;
}


// write string into a file using filestream
string Filepath = "c:\\output.xml";
FileStream fs = new
FileStream(Filepath,FileMode.CreateNew,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write(strmContents);
sw.Flush();
sw.Close();

}

hope it helps

-PK


Daniel Rimmelzwaan said:
I want to send a biztalk document to an aspx page, and I need to see some
sample code, because I just can't make it work. I have a port with transport
type HTTP, pointing to my aspx page, something like
http://myserver/mypage.aspx. From there it gets blurry, because I just can't
figure out how to do the rest.

Does anybody have a sample page for me that I can take a look at? Just a
simple one that takes whatever biztalk sends and saves it as an xml file on
the hard drive, with some pointers of what to check for, maybe some
exception handling? I am working with C#.NET, but VB.NET would be nice too,
either one.

Any help would be very much appreciated. I am not in the habit of
crossposting to more than one newsgroup, but I have been searching for a
long time, and I am getting nowhere.

Thanks,
Daniel.
 
P

Prashant Kondle

can u send me the code where u actually post to the BizTalk HTTP receive
DLL..from your application..
the problem is with biztalk parsing..and not with http..u can try to change
the channel settings to pass-through.so no validation occurs..
u can also validate your XML in the editor..or use a sample XML from the
biztalk tutorial for testing..

-PK


Daniel Rimmelzwaan said:
Thanks for the sample code. I copied it into my aspx page, but it doesn't
work for me. My guess is that I need to do some header validation in the
aspx page too, I just don't know what, because I can find no documentation
about this. Biztalk puts my request in the retry Queue, saying there's no
processing server. I get the following error in the event log.

An error occurred in BizTalk Server.

Details:
------------------------------
[0x80004005] An error occurred during transmission:
Request information:

Proxy:
Proxy port:80
URL:http://myserver/mypage.aspx
Content-Type:text/plain; charset="utf-8"
User name:administrator
Client certificate:
Request body:559 Bytes
Timeout duration (seconds): 600
Error code:80004005
====== ERROR =====
The HTTP server returned an unexpected response: 500 Internal Server Error
The following response was received:
<html>
<head>
<title>Parser Error</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size:
.7em;color:black;}
p
{font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b
{font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 {
font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 {
font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9emDans Test
[0x0159] The server encountered a transport error while processing the
messaging port "mytest", which uses a transport component with a ProgID of
"BizTalk.SendHTTPX.1".

[0x012b] A transmission attempt failed.




Prashant Kondle said:
This is the piece of code i use in my ASPX page load function--

private void Page_Load(object sender, System.EventArgs e)
{
// Create a Stream object to capture entire InputStream from browser.
Stream str = Request.InputStream;

// Find number of bytes in stream.
int strLen = (int)str.Length;

// Create a byte array to hold stream.
byte[] bArr = new byte[strLen];

// Read stream into byte array.
str.Read(bArr,0,strLen);

// Convert byte array to a text string.
String strmContents="";
for(int i = 0; i < strLen; i++)
{
strmContents = strmContents + (Char)bArr;
}


// write string into a file using filestream
string Filepath = "c:\\output.xml";
FileStream fs = new
FileStream(Filepath,FileMode.CreateNew,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write(strmContents);
sw.Flush();
sw.Close();

}

hope it helps

-PK


Daniel Rimmelzwaan said:
I want to send a biztalk document to an aspx page, and I need to see some
sample code, because I just can't make it work. I have a port with transport
type HTTP, pointing to my aspx page, something like
http://myserver/mypage.aspx. From there it gets blurry, because I just can't
figure out how to do the rest.

Does anybody have a sample page for me that I can take a look at? Just a
simple one that takes whatever biztalk sends and saves it as an xml
file
on
the hard drive, with some pointers of what to check for, maybe some
exception handling? I am working with C#.NET, but VB.NET would be nice too,
either one.

Any help would be very much appreciated. I am not in the habit of
crossposting to more than one newsgroup, but I have been searching for a
long time, and I am getting nowhere.

Thanks,
Daniel.

 
D

Daniel Rimmelzwaan

I don't want to send anything TO Biztalk, I want to receive something FROM
Biztalk, so I don't need to use the Biztalk receive dll, because as far as I
understand it right now that dll is for receiving documents INTO biztalk. So
biztalk sends something using HTTP transport to an aspx page, and that aspx
page should then take the actual XML document out of the request, so I can
use the values to call another application.

I tried a sample ASP file in the Biztalk SDK, and that works. The problem,
however, is that this code does not work in .NET. The app I am calling is
MS-CRM, which only has an object model available in .NET, so I need
something that will work in .NET.

Code in a regular ASP page, that sits in my wwwroot, and gets called in my
port in Biztalk:
<%
' ASP Receive page which accepts XML and saves it to a file
On Error Resume Next
Dim EntityBody, PostedDocument, Stream, fso, f
' Get the post entity body
EntityBody = Request.BinaryRead (Request.TotalBytes )
' Convert to text
Set Stream = Server.CreateObject("AdoDB.Stream")
Stream.Type = 1 'adTypeBinary
stream.Open
Stream.Write EntityBody
Stream.Position = 0
Stream.Type = 2 'adTypeText
Stream.Charset = "us-ascii"
PostedDocument = Stream.ReadText
Stream.Close
Set Stream = Nothing

set fso = Server.CreateObject("Scripting.FileSystemObject")
set f = fso.CreateTextFile("C:\temp\MyTest.xml", True)
f.WriteLine (PostedDocument)
f.Close
Set f = Nothing
Set fso = Nothing
%>

When I create a new aspx VB.NET project and copy this code into it, I can
build the project without any errors, but when I run the biztalk test, it
gives me the error from my earlier post. When I type the aspx page address
in a webbrowser, it gives me the following error:
Server Error in '/BTStoCRM' Application.
----------------------------------------------------------------------------
----

Parser Error
Description: An error occurred during the parsing of a resource required to
service this request. Please review the following specific parse error
details and modify your source file appropriately.

Parser Error Message: Could not load type 'BTStoCRM.Global'.

Source Error:

Line 1: <%@ Application Codebehind="Global.asax.vb"
Inherits="BTStoCRM.Global" %>


Source File: c:\inetpub\wwwroot\BTStoCRM\global.asax Line: 1


----------------------------------------------------------------------------
----
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET
Version:1.1.4322.573


Prashant Kondle said:
can u send me the code where u actually post to the BizTalk HTTP receive
DLL..from your application..
the problem is with biztalk parsing..and not with http..u can try to change
the channel settings to pass-through.so no validation occurs..
u can also validate your XML in the editor..or use a sample XML from the
biztalk tutorial for testing..

-PK


Daniel Rimmelzwaan said:
Thanks for the sample code. I copied it into my aspx page, but it doesn't
work for me. My guess is that I need to do some header validation in the
aspx page too, I just don't know what, because I can find no documentation
about this. Biztalk puts my request in the retry Queue, saying there's no
processing server. I get the following error in the event log.

An error occurred in BizTalk Server.

Details:
------------------------------
[0x80004005] An error occurred during transmission:
Request information:

Proxy:
Proxy port:80
URL:http://myserver/mypage.aspx
Content-Type:text/plain; charset="utf-8"
User name:administrator
Client certificate:
Request body:559 Bytes
Timeout duration (seconds): 600
Error code:80004005
====== ERROR =====
The HTTP server returned an unexpected response: 500 Internal Server Error
The following response was received:
<html>
<head>
<title>Parser Error</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size:
.7em;color:black;}
p
{font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b
{font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 {
font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 {
font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9emDans Test
[0x0159] The server encountered a transport error while processing the
messaging port "mytest", which uses a transport component with a ProgID of
"BizTalk.SendHTTPX.1".

[0x012b] A transmission attempt failed.




Prashant Kondle said:
This is the piece of code i use in my ASPX page load function--

private void Page_Load(object sender, System.EventArgs e)
{
// Create a Stream object to capture entire InputStream from browser.
Stream str = Request.InputStream;

// Find number of bytes in stream.
int strLen = (int)str.Length;

// Create a byte array to hold stream.
byte[] bArr = new byte[strLen];

// Read stream into byte array.
str.Read(bArr,0,strLen);

// Convert byte array to a text string.
String strmContents="";
for(int i = 0; i < strLen; i++)
{
strmContents = strmContents + (Char)bArr;
}


// write string into a file using filestream
string Filepath = "c:\\output.xml";
FileStream fs = new
FileStream(Filepath,FileMode.CreateNew,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write(strmContents);
sw.Flush();
sw.Close();

}

hope it helps

-PK


I want to send a biztalk document to an aspx page, and I need to see some
sample code, because I just can't make it work. I have a port with
transport
type HTTP, pointing to my aspx page, something like
http://myserver/mypage.aspx. From there it gets blurry, because I just
can't
figure out how to do the rest.

Does anybody have a sample page for me that I can take a look at?
Just
for
 
D

Daniel Rimmelzwaan

Thank you Prashant for your sample code. The error turned out to be on the
server not in your code. MS support helped me solve the problem this morning
(it was a missing assemply node in the machine.config file in the framework
folder). I then copied your code back into my aspx page and it created the
file.

I am so happy today!! well at least for now :)

Prashant Kondle said:
This is the piece of code i use in my ASPX page load function--

private void Page_Load(object sender, System.EventArgs e)
{
// Create a Stream object to capture entire InputStream from browser.
Stream str = Request.InputStream;

// Find number of bytes in stream.
int strLen = (int)str.Length;

// Create a byte array to hold stream.
byte[] bArr = new byte[strLen];

// Read stream into byte array.
str.Read(bArr,0,strLen);

// Convert byte array to a text string.
String strmContents="";
for(int i = 0; i < strLen; i++)
{
strmContents = strmContents + (Char)bArr;
}


// write string into a file using filestream
string Filepath = "c:\\output.xml";
FileStream fs = new
FileStream(Filepath,FileMode.CreateNew,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write(strmContents);
sw.Flush();
sw.Close();

}

hope it helps

-PK


Daniel Rimmelzwaan said:
I want to send a biztalk document to an aspx page, and I need to see some
sample code, because I just can't make it work. I have a port with transport
type HTTP, pointing to my aspx page, something like
http://myserver/mypage.aspx. From there it gets blurry, because I just can't
figure out how to do the rest.

Does anybody have a sample page for me that I can take a look at? Just a
simple one that takes whatever biztalk sends and saves it as an xml file on
the hard drive, with some pointers of what to check for, maybe some
exception handling? I am working with C#.NET, but VB.NET would be nice too,
either one.

Any help would be very much appreciated. I am not in the habit of
crossposting to more than one newsgroup, but I have been searching for a
long time, and I am getting nowhere.

Thanks,
Daniel.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top