|
Hi, I'm working on a big project for the agency I work for, and I'm faced with a paradigm decision.
Basically, the app is going to take uploads from trusted sources in the form of csv files and verify them against a database. Then it acts upon the verified entries and returns the invalid entries in another database to the user so that they can examine and correct them. The front end to this app is definitely web-based, but I'm trying to think about the best way to process the files in the backend.
Would it be best to make, say, a .NET console app that's run by an AT job at regular intervals and processes the files, or would it be best to fork a process off of the main web app itself? I was thinking about using the console app because it's on a single server, and we're going to be handling some pretty large csvs in each batch (sometimes 30,000 entries), and wanted to make sure I didn't overload the server.
Has anyone tackled a similar task before? How did you do it? Does anyone have any ideas on some of the ways I might do this and the advantages and disadvantages of each approach?
I look forward to hearing what you have to say.
|
|
|
|
|
Use PHP for this. You can use ASP.net but then you will have an extra load on your server.
Brad
Australian
- Captain See Sharp on "Religion"
any half intelligent person can come to the conclusion that pink unicorns do not exist.
|
|
|
|
|
Ah, but I work for a .NET-only shop, and this is the "Visual Studio and .NET Homepage" is it not? Also, that's what servers are for.
|
|
|
|
|
Yes use ASP.net then. PHP still beats it in high load instances though.
Brad
Australian
- Captain See Sharp on "Religion"
any half intelligent person can come to the conclusion that pink unicorns do not exist.
|
|
|
|
|
So, does anyone else have any other ideas other than to use PHP? Has anyone done something similar before? Would it be best to use a scheduled parser, or would it be best to somehow fork a process off of the running web-app?
|
|
|
|
|
Hi
I’m trying to create a Web Service with Visual Web Developer 2005 (C#), Win XP Pro SP2 (Spanish), IIS 5.1. it works ok from de debug option, but when I try to call it directly from the browser I get the following error:
Referencia a objeto no establecida como instancia de un objeto (Object reference not set to an instance of an object)
NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.]
System.Web.Hosting.ISAPIWorkerRequestInProc.GetServerVariable(String name) +1618
System.Web.Security.WindowsAuthenticationModule.OnEnter(Object source, EventArgs eventArgs) +593
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64
This is whit de standard code generated by default by VWD.
Any ideas of what is wrong?
Walter Charrière
|
|
|
|
|
I don't know too much about ASP.net, but unless that script creates a WDSL then you should not access it unless making a soap request.
Brad
Australian
- Christian Graus on "Best books for VBscript"
A big thick one, so you can whack yourself on the head with it.
|
|
|
|
|
Hi
The .wsdl file is there, an accesing it from a web page whit a post request.
Here is the full code:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------<
Web Service
File: Service.asmx
<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" %>
---------------------------------------------------------------------------------------------------------------------------------------------------------------------<
File: Service.cs (in APP_Code sub dir)
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://localhost/WebServices")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
public Service () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod]
public string[] ListaCiudades()
{
string[] Ciudades = new string[30];
Ciudades[0] = "Asunción";
Ciudades[1] = "Belmopan";
Ciudades[2] = "Bogota";
Ciudades[3] = "Brasilia";
Ciudades[4] = "Bridgetown";
Ciudades[5] = "Buenos Aires";
Ciudades[6] = "Caracas";
Ciudades[7] = "Georgetown";
Ciudades[8] = "Guatemala";
Ciudades[9] = "Kingston";
Ciudades[10] = "La Habana";
Ciudades[11] = "La Paz";
Ciudades[12] = "Lima";
Ciudades[13] = "Managua";
Ciudades[14] = "Mexico";
Ciudades[15] = "Montevideo";
Ciudades[16] = "Nassau";
Ciudades[17] = "Otawa";
Ciudades[18] = "Panama";
Ciudades[19] = "Paramaribo";
Ciudades[20] = "Puerto España";
Ciudades[21] = "Puerto Príncipe";
Ciudades[22] = "Quito";
Ciudades[23] = "San José";
Ciudades[24] = "San Salvador";
Ciudades[25] = "Santiago";
Ciudades[26] = "Santo Domingo";
Ciudades[27] = "Sucre";
Ciudades[28] = "Tegusigalpa";
Ciudades[29] = "Washington";
return Ciudades;
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
File: Service.asmx.wsdl (generated by http://localhost:1181/WebServices/Service.asmx?WSDL (edited removing :1181 from web adresses)
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://localhost/WebServices" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetnamespace="http://localhost/WebServices" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementformdefault="qualified" targetnamespace="http://localhost/WebServices">
<s:element name="HelloWorld">
<s:complextype>
<s:element name="HelloWorldResponse">
<s:complextype>
<s:sequence>
<s:element minoccurs="0" maxoccurs="1" name="HelloWorldResult" type="s:string">
<s:element name="ListaCiudades">
<s:complextype>
<s:element name="ListaCiudadesResponse">
<s:complextype>
<s:sequence>
<s:element minoccurs="0" maxoccurs="1" name="ListaCiudadesResult" type="tns:ArrayOfString">
<s:complextype name="ArrayOfString">
<s:sequence>
<s:element minoccurs="0" maxoccurs="unbounded" name="string" nillable="true" type="s:string">
<wsdl:message name="HelloWorldSoapIn">
<wsdl:part name="parameters" element="tns:HelloWorld">
<wsdl:message name="HelloWorldSoapOut">
<wsdl:part name="parameters" element="tns:HelloWorldResponse">
<wsdl:message name="ListaCiudadesSoapIn">
<wsdl:part name="parameters" element="tns:ListaCiudades">
<wsdl:message name="ListaCiudadesSoapOut">
<wsdl:part name="parameters" element="tns:ListaCiudadesResponse">
<wsdl:porttype name="ServiceSoap">
<wsdl:operation name="HelloWorld">
<wsdl:input message="tns:HelloWorldSoapIn">
<wsdl:output message="tns:HelloWorldSoapOut">
<wsdl:operation name="ListaCiudades">
<wsdl:input message="tns:ListaCiudadesSoapIn">
<wsdl:output message="tns:ListaCiudadesSoapOut">
<wsdl:binding name="ServiceSoap" type="tns:ServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http">
<wsdl:operation name="HelloWorld">
<soap:operation soapaction="http://localhost/WebServices/HelloWorld" style="document">
<wsdl:input>
<soap:body use="literal">
<wsdl:output>
<soap:body use="literal">
<wsdl:operation name="ListaCiudades">
<soap:operation soapaction="http://localhost/WebServices/ListaCiudades" style="document">
<wsdl:input>
<soap:body use="literal">
<wsdl:output>
<soap:body use="literal">
<wsdl:binding name="ServiceSoap12" type="tns:ServiceSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http">
<wsdl:operation name="HelloWorld">
<soap12:operation soapaction="http://localhost/WebServices/HelloWorld" style="document">
<wsdl:input>
<soap12:body use="literal">
<wsdl:output>
<soap12:body use="literal">
<wsdl:operation name="ListaCiudades">
<soap12:operation soapaction="http://localhost/WebServices/ListaCiudades" style="document">
<wsdl:input>
<soap12:body use="literal">
<wsdl:output>
<soap12:body use="literal">
<wsdl:service name="Service">
<wsdl:port name="ServiceSoap" binding="tns:ServiceSoap">
<soap:address location="http://localhost/WebService/Service.asmx">
<wsdl:port name="ServiceSoap12" binding="tns:ServiceSoap12">
<soap12:address location="http://localhost/WebService/Service.asmx">
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Consumer web Page
<title>
Untitled
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Error page: (remember the OS is in spanish, if need translate please let me know).
Error de servidor en la aplicación '/WebService'.
Referencia a objeto no establecida como instancia de un objeto.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de la excepción: System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.
Error de código fuente:
Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.
Seguimiento de la pila:
[NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.]
System.Web.Hosting.ISAPIWorkerRequestInProc.GetServerVariable(String name) +1841
System.Web.Hosting.ISAPIWorkerRequest.ReadRequestHeaders() +121
System.Web.Hosting.ISAPIWorkerRequest.GetKnownRequestHeader(Int32 index) +126
System.Web.Hosting.ISAPIWorkerRequestInProc.GetKnownRequestHeader(Int32 index) +104
System.Web.HttpWorkerRequest.HasEntityBody() +17
System.Web.HttpRequest.GetEncodingFromHeaders() +223
System.Web.HttpRequest.get_ContentEncoding() +48
System.Web.HttpRequest.get_QueryStringEncoding() +7
System.Web.HttpRequest.get_QueryStringText() +3387544
System.Web.HttpRequest.get_PathWithQueryString() +10
System.Web.Security.FormsAuthenticationModule.OnEnter(Object source, EventArgs eventArgs) +93
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64
Información de versión: Versión de Microsoft .NET Framework:2.0.50727.42; Versión ASP.NET:2.0.50727.210
why?
|
|
|
|
|
Ups!!!, sorry
The wsdl is not shown in the prior message, I forget to mark ignore tags.
Here iy is:
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://localhost/WebServices" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://localhost/WebServices" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://localhost/WebServices">
<s:element name="HelloWorld">
<s:complexType />
</s:element>
<s:element name="HelloWorldResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ListaCiudades">
<s:complexType />
</s:element>
<s:element name="ListaCiudadesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ListaCiudadesResult" type="tns:ArrayOfString" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfString">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>
</wsdl:types>
<wsdl:message name="HelloWorldSoapIn">
<wsdl:part name="parameters" element="tns:HelloWorld" />
</wsdl:message>
<wsdl:message name="HelloWorldSoapOut">
<wsdl:part name="parameters" element="tns:HelloWorldResponse" />
</wsdl:message>
<wsdl:message name="ListaCiudadesSoapIn">
<wsdl:part name="parameters" element="tns:ListaCiudades" />
</wsdl:message>
<wsdl:message name="ListaCiudadesSoapOut">
<wsdl:part name="parameters" element="tns:ListaCiudadesResponse" />
</wsdl:message>
<wsdl:portType name="ServiceSoap">
<wsdl:operation name="HelloWorld">
<wsdl:input message="tns:HelloWorldSoapIn" />
<wsdl:output message="tns:HelloWorldSoapOut" />
</wsdl:operation>
<wsdl:operation name="ListaCiudades">
<wsdl:input message="tns:ListaCiudadesSoapIn" />
<wsdl:output message="tns:ListaCiudadesSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ServiceSoap" type="tns:ServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="HelloWorld">
<soap:operation soapAction="http://localhost/WebServices/HelloWorld" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ListaCiudades">
<soap:operation soapAction="http://localhost/WebServices/ListaCiudades" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ServiceSoap12" type="tns:ServiceSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="HelloWorld">
<soap12:operation soapAction="http://localhost/WebServices/HelloWorld" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ListaCiudades">
<soap12:operation soapAction="http://localhost/WebServices/ListaCiudades" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Service">
<wsdl:port name="ServiceSoap" binding="tns:ServiceSoap">
<soap:address location="http://localhost/WebService/Service.asmx" />
</wsdl:port>
<wsdl:port name="ServiceSoap12" binding="tns:ServiceSoap12">
<soap12:address location="http://localhost/WebService/Service.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
|
|
|
|
|
Finally I solved the problem. As I think it was an installation problem, to solve y find an article in Microsoft Knowledge Base:
See: http://support.microsoft.com/kb/309051
I run in the command line
C:>cd %windir%\system32\inetsrv
C:>rundll32 wamreg.dll, CreateIISPackage
C:>regsvr32 asptxn.dll
C:>IISRESET /restart
Problem solved.
I hope this be of use to someone else, and avoid looking articles and web forums for a month or two to find the answer.
|
|
|
|
|
How can I display a PDF document in an ASP.NET page? I want to display the document while also having some input fields available. Would this ideally be a Frame application?
|
|
|
|
|
u need to add
<%
Response.ContentType = "application/pdf"
Response.Addheader "content-disposition", "inline; filename=YourFileName.doc"
%>
at top of the page...
ths will work
Thanks,
Ankur Bakliwal
|
|
|
|
|
yes this would be a Frame application
In the First Frame you can have TextBox
In the Second Frame you can add this code
FileStream fileStream = new FileStream("c:\\Admin.pdf", FileMode.OpenOrCreate, FileAccess.Read);
long len;
len = fileStream.Length;
Byte[] fileAsByte = new Byte[len];
fileStream.Read(fileAsByte, 0, fileAsByte.Length);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.BinaryWrite(fileAsByte);
Response.Flush();
Response.End();
Regards,
Sylvester G
Senior Software Engineer
Xoriant Solutions
sylvester_g_m@yahoo.com
|
|
|
|
|
You don't need all that, just point the src attribute of the second frame to the PDF file, assuming the web server returns the correct content-type (which it should) you're all sorted.
I wouldn't recomend using a frameset though, they're crap! A better way would be to embed an iframe (still on the frame theme but much better) in the page pointing to the PDF file (although I'm not 100% sure that would work but worth a try!)
|
|
|
|
|
i have a requirement of learning ajax recently. Now i dont know any scripting language, so to learn ajax do i need to learn any scipting lang. as javascript or something or i can directly go for ajax?
If u can give some useful information on it n ajax it will be appreciated.
i dont know whether this is the right column for posting this.
Plz guide.
Thank You.
Nekshan.
|
|
|
|
|
Ajax is javascript, therefore you will have to learn javascript.
Brad
Australian
- Christian Graus on "Best books for VBscript"
A big thick one, so you can whack yourself on the head with it.
|
|
|
|
|
And usually a server-side language as well....
|
|
|
|
|
Not always, but yes the majority of the time you will/should.
Brad
Australian
- Captain See Sharp on "Religion"
any half intelligent person can come to the conclusion that pink unicorns do not exist.
|
|
|
|
|
I have to say that AJAX is not JavaScript.
AJAX can be achieved with the use of a client side scripting language, HMTL and DOM manipulation and some server side thingies...
AJAX stand for asynchronoous javascript and xml.
but still, you could achieve the same things with VB Script on the client (would only work in IE).
AJAX-like techniques exist since the very early stages of the web. Those days we used hidden frames to get the same effect. As a concept it is very old.
It got trendy nowadays coz Google used it on google maps and created a buzz around it.
|
|
|
|
|
No.
You are talking about Ajax-like development. If you wrote it in VB script then it would be close to the javascript version (well as close as VBscript gets anyway) but it would not be Ajax. The same applies for frame development.
And also web developers were using Ajax techniques a fair while before google was releasing beta versions of their products, they just made it semi-famous with end users and non web developers.
Brad
Australian
- Christian Graus on "Best books for VBscript"
A big thick one, so you can whack yourself on the head with it.
|
|
|
|
|
Bradml wrote: You are talking about Ajax-like development.
Yes I said that AJAX is not JavaScript. Coz strictly speaking, its a combination of JavaScript and XML, regardless how the XML is generated and then served to the client.
Bradml wrote: If you wrote it in VB script then it would be close to the javascript version (well as close as VBscript gets anyway) but it would not be Ajax.
I so totally agree. I said that you could achieve the same thing by using another client side scripting language.
Bradml wrote: And also web developers were using Ajax techniques a fair while before google was releasing beta versions of their products, they just made it semi-famous with end users and non web developers.
And I also said that developers used AJAX-like techniques since the early stages of web and that Google used proper AJAX in google maps and created a buzz around it and became popular.
Bradml wrote: No
So your "NO" is the answer to what?
|
|
|
|
|
I thought that Ajax was strictly XML too, but I was proved wrong about that.
but apart from that I guess we are on the same page then.
Brad
Australian
- Captain See Sharp on "Religion"
any half intelligent person can come to the conclusion that pink unicorns do not exist.
|
|
|
|
|
yes, there is JSON asell ;)
|
|
|
|
|
You need to understand HTML and CSS first.
Then understand the concepts of DOM.
Then learn JavaScript.
Then have a look at prototype (it will help you alot).
Understand some server side language. ASP, ASP.NET, PHP, JSP...
Understand HTTP and the 2 main request types.
Then think of some useful way of putting all of them together...
Apply them, and...
...da daaa!!!!
you have AJAX!
|
|
|
|
|
theJazzyBrain wrote: You need to understand
wait... are you being serious?
led mike
|
|
|
|