I have a simple web app that alows the operator to search for files and download them (log files), the click a button to look up the directories, pick a file and download it. This seems to work fine if the source files are on a local disk, but not if they are on a network drive. Is there anything special I need to do or is this one of those deals where doing a dir of a network drive is not allowed.
The call is simple
myName = Dir(MyPath, vbDirectory) ' Retrieve the first entry.
If myPath is local it works fine, if not it returns nothing...
The user context that your web site is running under doesn't allow you access to the the other network drive. Most likely your web app is running under a default app pool which means it is running as aspnet user. This user would not have rights to access a network drive. I would not suggest give that user rights either as it can be a security issue.
In this case it might be best to try to create a virtural directory that allows the web site to have access to those files. Anyway, hope that helps.
Thanks for the help, I am trying to figure this out the hard way and did not realize it was running under a different account, that explains a few things.
This network is an internal network, so security wise my concerns are not as large as they woudl be on the internet. So option #1 is not necessarily closed.
I tried to create a virtual directory but may be mis-guided in how to do it. I created a virtual directory, it appears that it figured out that it was a network drive, I gave it the password for that drive, but when I connect with a browser is asks me for a password again. It does not seem to accept any type of local password or the pasword used to access that drive. Do I need to do something to make the web site get access?
Any additional suggestions or guidance are more than welcome...
Well, I can think of a couple of different options.
You could create some process that copies the files from the network to the local web server.
If the files aren't a big security risk, you could create a share for that folder and give everyone rights to it. NOTE still not a great idea even if is just on your local intranet.
So you are left with the final option.
This one is a little bit more involved, but I think it will work well.
First create a domain user account (or have your domain admin create the account for you)
Find what ever app pool your site is running on. If you are currently running on the default app pool I would suggest creating a new one for this site.
In the app pool go to the identity tab. Set the identity to be the domain user you created. NOTE this domain user must be in the IIS_WPG group on the web server box.
Next give the domain user the correct rights locally and on the network folder.
It is a bit of work, but in the end it is probably the best choice.
The other cool thing you can do when you have your web app using the app pool identity. You can use NTAuthentication for you sql connection. You just have to change the connection string and set up that domain user with the correct rights on your sql server.
Ok that was probably more then you wanted to know.
I don't know of any good articles out there on app pools. I am sure they are there, but I haven't really looked. I will give my understanding of the application pool.
The application pool is kind of like the IIS worker process thread that handles the work for any of the sites under it. So the app pool is kind of the top dog. In your IIS manager you will see a folder right above the web sites call application poos, that is where the app pools are located. A nice feature of an app pool is if you create a new app pool for your web application you can stop and re-start that app pool with out affecting any of the other web application that are connected to different app pools. One interesting default on the app pool is that it recycles itself ever 29 hours. I have seen some interesting problems from this since eventually it happens in the middle of the day and your users lose their session etc. That is one thing I would always suggest changing. I usually set mine to recycle during a time I know there won't be any users on the web site. If you right click your web site and go to properties. If you click on the Home Drectory tab the drop down at the bottom tells you which app pool the site is currently connected to. If you want to create a new app pool. Go to the application pools folder and right click and then new and then new app pool. You give it a new for the app pool and you are done. To set the identity of the app pool. Go to the application pools directory, find your app pool, right click and click on properties. The first tab to see is the Recycling tab. Note the default is in 1740 minutes. This tab is where you would set the recycle time if you wanted it to happen at a certain time of day. NOTE Any changes to the app pool will re-start your web application. So make sure this stuff is set up correct first. If you need make change to it later just keep that in mind or you will have some un happy users. Ok go to the Indentity tab put in your domain user and password. Finally YOU MUST add the domain user to the IIS_WPG group on the web server or things will not work. Go to computer manager, local users and groups, groups find the IIS_WPG group and add your domain user.
I am sure there are better articles out there, but at least that is a quick dump of the stuff I think is important to know.
Add an image control to your aspx file that points to another aspx file with whatever parameters you need to find the images. In this other file, pull the data out the database, use something in System.Drawing (I can't be more specific than that, sorry!) to merge the images together and then push them down the response stream after setting the content type to whatever image type your serving.
Or an easier way might be to simply put two images on the page styled in such a way as they appear as one (therefor skipping the image mergin bit)
:(I'm having problems with my resource manager in ASP.NET 2.0 after conversion
from ASP.NET 1.1.
Here is a background:
In ASP.NET 1.1
All my user controls and aspx pages inherit from base classes. A base class
includes this property (among others...):
Private m_rscResources As System.Resources.ResourceManager
Public ReadOnly Property rscResource() As System.Resources.ResourceManager
If m_rscResources Is Nothing Then
m_rscResources = New
In my application root folder I have two files. One strings.resx and one
strings.sv.resx. When I call the rscResource.GetString method I simply use
the tag name to get the translation.
Label1.Text = rscResource.GetString("First name")
In 1.1 this works absolutely fine. However, In 2.0 (after conversion), it's
not working. The error message I get from .NET is:
System.Resources.MissingManifestResourceException was unhandled by user code
Message="Could not find any resources appropriate for the specified
culture or the neutral culture. Make sure
"MyPortalNamespace.Strings.resources" was correctly embedded or linked into
assembly "App_Code.lkep0udn" at compile time, or that all the satellite
assemblies required are loadable and fully signed."
I've tried to dynamically get the current executing assembly name like this:
m_rscResources = New
& ".Strings", System.Reflection.Assembly.GetExecutingAssembly)
Same error message (but 'MyPortalNamespace' is replaced).
I've tried a number of things to work around this, but I still get this
error message. I've tried placing the resource files into different
directories including App_Code, App_GlobalResources, application root etc.
None is making it better.
So, here I stand...
I want to clarify that I know how you can use resources in 2.0, but that's
from scratch. I have hundreds and hundreds of places where I use
rscResource.GetString("MyKey") and I really don't feel I want to change all
that now. p
please suggest me how to make it possible
New to devlopment with VS.net, I created a very basic page that should query a database and return some data. It works fine on the development station but when I run it on the server it does not appear to work. The screen appears to refresh but nothing else happens. In my feeble attempt to degug I added a simple button and added the following code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />
lblNotes.Text = "Test"<br />
This also appears to work on the workstation, but not on the server.
How can I chase this down? I know this may be a simple question but I am self teaching myself and little things like this appear to be my biggest challenge....
I have a problem, i am programming a datagrid in asp.net under webmatrix, only is a connection to access database and show this query in a datagrid, every very good exception for the query pagination.
How i can allow what, if the user press a number of page from query, then the asp change the query result to the number page?, attach the code because not work this section, thanks very mucho for you help.
Private connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\lo que se va a estar respaldando\mio\my_access_db.mdb"
Private dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)
Private dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
private dataAdapter As System.Data.IDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter
private dataSet As System.Data.DataSet = New System.Data.DataSet
Sub cmdQuery_Click(sender As Object, e As EventArgs)
If Len(Trim(txtSQLQUery.Text)) > 0 Then
MsgBox("No SQL Query string ingresed!", vbCritical, "Error")
i am using Visual Web Development 2005.hav created an apps using vb.
i hav used a login control and password recovery control.how to send e-mail regarding the password to the user? i hav configured my smtp connection even
i get the following error,
An established connection was aborted by the software in your host machine